1、MFC中全局变量的定义
可以在APP中定义全局变量,比如:
class CPnrNetCfgApp : public CWinAppEx
{
public:
CPnrNetCfgApp();
....
public:
CPnrAutoNamingOrdering* ordering;//全局变量
CPnrAutoNamingReferencename* referencename;//全局变量
CPnrAutoNamingSensorname* sensorname;//全局变量
CPnrAutoNamingMiscellaneous* Miscellaneous;//全局变量
这样,其它地方都可以使用MyApp,这个全局对象来使用全局变量。全局变量的释放,可以放在MainFrame的析构函数中;
以上方法的缺点:
可以考虑放在document中,因为document本身就是为了数据服务准备的
2、对View的理解
View是一个CWnd,包括CTreeView、CScrollView等;
假如我应用程序建的是一个CScrollView,为了显示的要求,我可以在CScrollView中,显示一个CMFCPropertyGridCtrl、CWebBrowser2、CPnrListCtrl....等等,他们都继承于CWnd,可以显示多个,来回切换。通过ShowWindow来控制到底要显示哪个。
CPnrListCtrl对象的生成需要使用Create。
如果频繁进行切换,那么需要判断某个CPnrListCtrl之类的对象是否为空,怎么判断呢?可以
if (mywnd.m_hWnd==NULL)//判断句柄是否为空
{
}
如果销毁的话,需要使用DestroyWindow();
3、关于消息映射的ON_COMMAND命令消息
比如,ON_COMMAND(ID_PNR_PANE_REPORT_CONFIG,&CMainFrame::OnReport)
OnReport()没有任何参数,为什么呢?