b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

mfc隐藏EXE的图标_modifystyleex_ws_ex_left(4)

电脑杂谈  发布时间:2017-02-06 22:18:44  来源:网络整理

DockControlBar(): 将控制条依靠在客户区周边。

FloatControlBar(): 将控制条浮动在屏幕上,而不是依靠在客户区。

ShowControlBar(): 显示或隐藏控制条。

SaveBarState(): 将所有控制条的状态存入初始化文件或注册表。

LoadBarState(): 从初始化文件或注册表中恢复所有控制条状态。

GetDockState(): 将控制条状态信息存入一个CDockState对象。

SetDockState(): 从一个CDockState对象中恢复控制条状态。

SetMessageText(): 在状态栏的第一个面板区域显示一个信息串。

ReclcLayout(): 虚函数,当控制条位置变化或客户区尺寸变化时被调用,重新设置视图及控制条在客户区的位置。可根据需要重载它或主动调用它。

分发命令消息

命令消息是指菜单、工具栏、加速键及命令按钮向其所在窗口发送的WM_COMMAND消息。主框架窗口通常包含应用程序的系统主菜单和工具栏,而加速键往往在LoadFrame()中装入主窗口,它们都要向主窗口发送命令消息。

命令消息与窗口消息(除WM_COMMAND之外,前缀是WM_的消息)不同,窗口消息与某一窗口(句柄)紧密相关,应该由接收消息的窗口来处理;而命令消息往往与具体的窗口无关,只是为本程序完成一个功能操作。主框架窗口的系统菜单(工具按钮)尤其如此,某一个主菜单命令在其他窗口中(如视图)或在其他模块中(如文档)处理也许更合理。为了解决这个矛盾,CFrameWnd实现了分发命令消息的机制,它能够将本窗口收到的命令消息分发给视图、文档和应用类。modifystyleex

CCmdTarget类定义了一个OnCmdMsg()虚拟函数,用于处理命令消息,派生类可以重载它,实现自己的命令消息处理方式。是的,CFrameWnd的命令消息分发机制就是通过重载这个函数实现的。该函数的代码如下:

BOOL CFrameWnd::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo)

{

CPushRoutingFrame push(this);

//首先将命令消息传给活动视图

CView* pView = GetActiveView();

//如果袖图没有处理,它将传送命令消息给关联的文档对象

if (pView != NULL && pView->OnCmdMsg(nID, nCode, pExtra, pHandlerInfo))

return TRUE; //视图或文档已经处理该命令,返回

//视图或文档没有处理该消息,即没有建立该命令的消息映射,下面由主窗口本身处理

if (CWnd::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo))

return TRUE; //主窗口已处理

//主窗口没有处理,最后尝试应用类

CWinApp* pApp = AfxGetApp();

if (pApp != NULL && pApp->OnCmdMsg(nID, nCode, pExtra, pHandlerInfo))

return TRUE;

return FALSE; //最终没有处理该命令消息,返回false,该消息由默认过程处理

}

最后,读者要注意这样一个事实:主窗口直接调用视图(间接调用文档)、应用类的OnCmdMsg()虚函数处理命令消息,并没有通过SendMessage()或PostMessage()将命令消息转发。而OnCmdMsg()仅在类中搜索消息映射表,查找该命令的处理函数,找不到则返回false。所以视图类只有通过消息映射,才能处理主窗口转发的命令消息,如果使用CView::WindowProc()捕捉该类消息,会一无所获。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-30960-4.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...