一、修改程序的标题:(摘)
在CMainFrame的PreCreateWindow函数中修改窗口风格:
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
cs.style &= ~(LONG) FWS_ADDTOTITLE;
return CFrameWnd::PreCreateWindow(cs);
}
使用此方法,窗口的标题只显示IDR_MAINFRAME字符串中第一个/n之前的部分。
运行结果如下:
二、在CView的OnCreate中不能修改菜单项状态的原因
换句话来讲,在CMainFrame的OnCreate中可以修改。主要是因CView的创建早于菜单的创建而造成修改一个不存在对象而出现错误。
这个错误花了我很长时间才找出来,主要是因为VC不像JAVA一样,会详细显示出“异常”的错误原因:
可以看到
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) == -1) //这里创建了CView了菜单,而且CView早于菜单的创建
return -1;
......
//所以在这里修改菜单的状态比较合适
}
三、像java一样在界面上进行调试
在调试菜单的on_command_update_ui时,若在Menu Item的update handler上设置断点,则调试到此后再往下主程序不会显示出来。
我发现只要按住F5不动就可以使程序界面定格,再用鼠标右键激活出此对话框的右键菜单就可以完全定格此窗口了