1. SetClassLong这个函数的能替换窗口类的信息,下面是替换图标的例子,在CMainFrame类中的OnCreate中最后输入
SetClassLong(m_hWnd,GCL_HICON,(LONG)LoadIcon(NULL,IDI_WARNING));则图标被替换成最后一个参数表示的图标
2. 在CMainFrame中修改光标和背景是没有意义的,因为Frame会被View遮盖,所以,要修改光标和背景需要在View类中修改。但是View类没有提供OnCreate这个消息响应函数,需要自己添加。 SetClassLong(m_hWnd,GCL_HCURSOR,(LONG)LoadCursor(NULL,IDC_CROSS));//修改光标
SetClassLong(m_hWnd,GCL_HBRBACKGROUND,(LONG)(HBRUSH)GetStockObject(BLACK_BRUSH));//修改背景
3. MAKEINTRESOURCE这个宏将一个整型值转化为一个资源
MAKEINTRESOURCE(IDI_ICON1);//这是把资源ID为IDI_ICON1的图标转化为资源的写法
4. 获得应用程序的实例有三种方法
a) AfxGetInstanceHandle()
b) AfxGetApp()->m_hInstance
c) 在MFC架构中,有一个类APP类已经实例化了一个变量:C***App theApp;所以我们在需要的地方生命一下就行了。例如在CMainFrame要使用这个函数,只需要
extern CModifyApp theApp就行了。然后调用theApp->m_hInstance;
5. 要获得一个介于0-2之间的数,可以这样
OnTimer()
{
static int i=0
i=++i%3;
}
6. 设置复选标记,可以用UpDateCommandUI 消息相应,然后用pCmdUI->SetCheck()
7. CTime获取系统时间CTime::GetCurrentTime
8. 设置状态栏信息CStatusBar::SetPaneText
9. 进度栏CProgressCtrl
10. 自定义消息使用
a) 消息在windows中用整数值表示,windows系统消息定义到了WM_USER,自己要定义消息的话,需要在这个基础上面加一个值。#define UM_PROGRESS WM_USER+1
b) 在头文件中自定义消息:#define UM_PROGESS WM_USER+1,有了消息之后我们需要作消息响应函数的声明,在头文件中进行afx_msg void OnProgress()
c) 消息响应函数声明之后需要做消息映射。ON_MESSAGE(UM_PROGRESS,OnProgress)
d) 消息映射之后要实现函数void CMainFrame::OnProgress(){}