正文

Visual C++ 编程小技巧2005-11-15 10:32:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/wondgergis/6979.html

分享到:

 1.如何改变窗口的图标?   向窗口发送 WM_SECTION消息。   Example: HICON hIcon=AfxGetApp() ->LoadIcon(IDI_ICON);ASSERT(hIcon);AfxGetMainWnd() ->SendMessage(WM_SECTION,TRUE,(LPARAM) hIcon);   2. 如何改变窗口的缺省风格?   重写 CWnd:: PreCreateWindow 并修改CREATESTRUCT 结构来指定窗口风格和其他创建信息. Example: Delete "Max" Button and Set Original Window’s Position and Size BOOL CMainFrame:: PreCreateWindow (CREATESTRUCT &cs){ cs.style &=~WS_MAXINIZEMOX; cs.x=cs.y=0; cs.cx=GetSystemMetrics(SM_CXSCREEN/2); cs.cy=GetSystemMetrics(SM_CYSCREEN/2); return CMDIFramewnd ::PreCreateWindow(cs); }   3. 如何将窗口居中显示? Easy, Call Function CWnd:: Center WindowsExample(1): Center Window( ); //Relative to it’s parent// Relative to ScreenExample(2): Center Window(CWnd:: GetDesktopWindow( ));//Relative to Application’s MainWindowAfxGetMainWnd( ) -> Center Window( );   4. 如何让窗口和 MDI窗口一启动就最大化和最小化?   先说窗口。   在 InitStance 函数中设定 m_nCmdShow的 取值. m_nCmdShow=SW_SHOWMAXMIZED ; //最大化m_nCmdShow=SW_SHOWMINMIZED ; //最小化m_nCmdShow=SW_SHOWNORMAL ; //正常方式   MDI窗口:   如果是创建新的应用程序,可以用 MFC AppWizard 的Advanced 按钮并在MDI 子窗口风格组中检测最大化或最小化; 还可以重载 MDI Window 的PreCreateWindow函数,设置WS_MAXMIZE or WS_MINMIZE;如果从 CMDIChildWnd 派生,调用 OnInitialUpdate函数中的 CWnd::Show Window来指定 MDI Child Window的 风格。   5. 如何使程序保持极小状态?   很有意思的问题   这么办: 在恢复程序窗体大小时, Windows 会发送WM_QUERY-OPEN 消息,用ClassWizard设置成员函数 OnQueryOpen() ,add following code: Bool CMainFrame:: OnQueryOpen( ){ Return false;}   6. 如何限制窗口的大小?   也就是 FixedDialog 形式。 Windows 发送 WM_GETMAXMININFO消息来跟踪, 响应它,在OnGetMAXMININFO 中写代码:   7. 如何使窗口不可见?   很简单,用SW_HIDE 隐藏窗口,可以结合 FindWindow,ShowWindow 控制.   8. 如何使窗口始终在最前方?   两种途径. BringWindowToTop(Handle);   SetWindowPos函数,指定窗口的 最顶风格,用WS_EX_TOPMOST扩展窗口的 风格   Example: void ToggleTopMost( CWnd *pWnd){ ASSERT_VALID(pWnd); pWnd ->SetWindowPos(pWnd-> GetStyle( ) &WS_EX_TOPMOST)?  &wndNoTopMOST: &wndTopMost,0,0,0,0,SSP_NOSIZE|WSP_NOMOVE}; }

阅读(2420) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册