(年年月月岁岁朝朝,日复一日)
<>窗口外观修改: 窗口生成前修改:通过框架类(CMainFrame)PreCreateWindow()进行修改,修改对象包括CREATESTRUCT结构体中全部内容 cs.cx=300;等
窗口创建后修改:在框架类中在OnCtrate()函数中通过SetWindowLong()函数修改 GetWindowLong()获取窗口信息
<>窗口光标图标背景: 窗口生成前:窗口生成前可以在框架类中PreCreateWindow()函数里编写自定义窗口类进行注册,但是框架类智能改变窗口图标,而背景和光标要在视类中实现
背景图标等需要在视类窗口中创建(单文档SDI中视类和框架类一致),所以在视类中将框架类自定义窗口类再次注册,框架类中已声明。
快速设置:AfxRegisterWndClass(类型,光标,背景,图标);返回值为类名可以被直接调用
窗口创建后:SetClassLong(窗口句柄,属性索引,属性值);
<>模拟动画图标: 获取自定义图标LoadIcon(获取当前实例句柄,图标名或资源符字符串MAKEINTRESOURCE(ID)ID转换资源符字符串)
获取当前实例句柄 AfxGetInstanceHandle()或者theApp.m_hInstance(需要外部定义)(应用程序类的基类CWinApp的数据成员标识当前实例)或者
AfxGetApp()->hInstance获取当前程序对象指针用以访问m_hInstance
配置自定义图标 SetClassLong(m_hWnd,GCL_HICON,(LONG)m_hIcons[0]);属性值为自定义图标LoadIcon()返回值
<>定时器: 设置定时器SetTimer(),定时器消息WM_TIMER,响应函数Ontimer()
<>工具栏内容添加: 工具栏上添加按钮设置ID和相同ID按钮执行相同响应函数
<>工具栏创建: PlanA:创建工具栏资源>构建CToolBar对象>Create或CreateEx创建Windows工具栏并和CToolBar关联>LoadToolBar加载工具栏
PlanB:构建CToolBar对象>Create或CreateEx创建Windows工具栏并和CToolBar关联>LoadToolBar加载工具栏>SetButtons函数将工具栏按钮和位图关联
Create(父窗口指针,工具栏样式,工具栏ID); CToolBar::CreateEx(父窗口指针,Ctrl风格,工具栏样式,工具栏边框宽度,工具栏ID)
创建完成后通过CToolBar对象.EnableDocking()配置工具栏停靠位置,再EnableDocking()配置主框架可以被停靠位置,最后通过DockContrBar()进行停靠
注:上述过程在框架类中OnCreate()执行
<>进度栏: 创建CProgressCtrl对象,然后通过Create()进行创建窗体,通过SetPos()设置进度,StepIt增长一次(增长量由下一个决定),SetStep设置单位增长量,SetRange设置范围
<>自定义消息: 添加消息定:头文件中宏定义 #define UM_XXXXX WM_USER+X(自定义消息UM开头,消息值在WM_USER基础上加)
消息响应函数声明:头文件中系统消息声明外加afx_msg void OnProgresss();
消息映射表中添加自定义消息信息:源文件中通过ON_MESSAGE宏实现 ON_MESSAGE(消息名,消息响应函数名)
添加消息响应函数:源文件中添加对应消息响应函数
发送消息:SendMessage(消息名);该方式是消息直接发送到目标消息,执行消息响应函数后才返回(类似子函数跳转)
PostMessage(消息名);该方式是将消息发送消息列表后返回,消息响应函数之后执行。