现在位置: 首页 > UI界面
2012-08-20 06:27 工业·编程 ⁄ 共 2282字 暂无评论
    前段时间一直在想怎么样能让窗口变得更漂亮一点,更加吸引人呢?在网上也看到了不少高手们的做法,但对于我这种不喜欢太复杂的人来说,我不是很喜欢那样写代码,GetSystemMetrics函数来得到各个边框的长度或宽度。。。。没几下,我的头就晕了,在查了许多资料以及实验后,我终于找到了一种比较简单的美化窗口的方法,现在就拿出来献丑一下,觉得不好的就请跳过去吧~~ 大家请看这张图:     ...
阅读全文
2012-08-19 23:48 工业·编程 ⁄ 共 261字 评论 1 条
    要使用当前的所有窗口最小化,一般的做法,就是通过EnumWindows枚举所有窗口,然后再调用ShowWindow函数来最小化所有的窗口。     不过还有一个做法,就是Win键+M键组合。不过,我们可以在程序中来模拟这样的按键,也能达到最小化所有的窗口。     使用到的模拟键盘按键的函数keybd_event: keybd_event(VK_LWIN, 0, 0, 0); keybd_event(77, 0, 0, 0); keybd_event(...
阅读全文
1.Windows API调用 int width = GetSystemMetrics ( SM_CXSCREEN ); int height= GetSystemMetrics ( SM_CYSCREEN ); 如果想动态自适应分辨率的变化,处理WM_DISPLAYCHANGE消息. 2.获得分辨率 BOOL EnumDisplaySettings( LPCTSTR lpszDeviceName, // display device DWORD iModeNum, // graphics mode LPDEVMODE lpDevMode // graphics mode settings ); 改变分辨率 LONG ChangeDisplaySett...
阅读全文
一、 实现过程 1.表头修改 新建一个MFC类CHeaderCtrlCl,其基类为CHeaderCtrl,响应OnPaint消息实现自绘,实现代码请看源代码(由于代码较占篇幅,所以就不贴上来了,抱歉),在头文件中定义函数LRESULT OnLayout( WPARAM wParam, LPARAM lParam ),之后手动添加消息响应ON_MESSAGE(HDM_LAYOUT, OnLayout),在消息响应中改变高度,实现代码如下: 01.LRESULT CHeaderCtrlCl::OnLayout( WPARAM wParam, LPARAM lParam ) 02.{ 03.LR...
阅读全文
2012-08-16 09:49 工业·编程 ⁄ 共 3387字 暂无评论
窗口风格对窗口有很多影响,我先简单将一些使用常见窗口风格的结果,展现如下。我们知道 · WS_BORDER   Creates a window that has a border. · WS_DLGFRAME   Creates a window with a double border but no title. · WS_CAPTION   Creates a window that has a title bar (implies the WS_BORDER style). Cannot be used with the WS_DLGFRAME style. · WS_THICKFRAME   Creates a w...
阅读全文
2012-08-15 23:42 工业·编程 ⁄ 共 1435字 暂无评论
    列表控制有一个特殊的功能,当以详细资料方式显示时,列表顶部的表头可以当作按钮来使用,这可以通过列表控制创建时的风格来控制。当鼠标点击列表头名称时,列表控制就会向其父窗口发送一个LNV_COLUMNCLICK消息,利用类导向中列表控制IDC_LISTCTRL对应的LNV_COLUMNCLICK消息加入相应处理函数,就可将表列按照特定顺序进行排列。其函数使用方法见程序,其中iSort为排序的表列索引号,(PFNLVCOMPARE)CompareFu...
阅读全文
网上看到了防止CLIstCtrl 闪烁的方法,挺详细的,就是第五种方法有点问题,做了下修改,就可以用了: 1.使用SetRedraw禁止窗口重绘,操作完成后,再恢复窗口重绘 m_ctlList.SetRedraw(FALSE); //以下为更新数据操作 //…… //恢复窗口重绘 m_ctlList.SetRedraw(TRUE); 2.使用LockWindowUpdate禁止窗口重绘,操作完成后,用UnlockWindowUpdate恢复窗口重绘 m_ctlList.LockWindowUpdate(); //以下为更新数据操作 //…… //恢复窗口重绘 ...
阅读全文
2012-08-14 23:17 工业·编程 ⁄ 共 5387字 暂无评论
对于MFC程序员来说做UI开发是痛苦的事情,不过大多数情况下我们都需要做这件事情,因为MFC自带的控件实在是太简陋了。这时候我们多半会涉及到自绘控件,随之而来的很可能就是窗口和控件的闪烁问题。这篇文章希望对MFC的窗口和控件闪烁问题做一个尽量全面的总结。 一、闪烁的原因 引起闪烁的原因很多,以至于网上有n多种解决闪烁问题的方法;如果你按照某一种方法做了仍然没有解决你的问题,请不要认定这个方法有问题,而是你没...
阅读全文
2012-08-14 23:13 工业·编程 ⁄ 共 6093字 暂无评论
基础知识很重要,Win32中的窗口句柄和MFC窗口类对象的2个概念。前者被后者包装了起来。 先看下MSDN中的TN017中的文章 In the case of C++ Windows objects that do perform auto-cleanup, you must callDestroyWindow. If you use operator delete directly, the MFC diagnostic memory allocator will alert you that you are freeing memory twice (the first call todelete as well as the indirect call to "delete th...
阅读全文
2012-08-14 23:04 工业·编程 ⁄ 共 4958字 暂无评论
该功能的实现来源于codeproject上面的一个例子《Tooltips for Menu Item and popup menuitem》,其实例子讲的步骤很简单,不过我不打算简单的翻译一下,林语堂先生不是说:“只用一样东西,不明白它的道理,实在不高明”。    实现该功能的核心在于作者自己建立的一个MenuToolTip类,182行的代码实现了菜单提示的功能,下面我就将其一一解释开来,在每行代码的后面有具体的解释。    #ifndef _MENU_TOOL...
阅读全文