GUI
polytechnic
这个作者很懒,什么都没留下…
展开
-
MFC 对话框 开启 Aero 毛玻璃 半透明 效果 (三)
<br /><br /> <br />这张图,要说有什么不完美的地方,那就是2个按钮的边框了。<br />按钮是默认的圆角矩形,可那周围一圈白白的算是怎么回事?跟 Aero 很不协调!<br /> <br />为2个按钮添加变量,可以用类向导,也可以手动添加。注意:类型要选择 CMFCButton 而不是 CButton!<br /> <br />在头文件中定义变量:<br /><br />private:<br /> CMFCButtonm_btnOK;<br /> CMFCB原创 2010-06-27 06:58:00 · 6141 阅读 · 1 评论 -
wxPython for python 3.x
Python 的最大特点点是开放,然而这是把双刃剑,语言过于开放,谁都可以提交提案,并有可能被接受。这就导致了各个版本之间差异甚大,甚至不相兼容。GUI 的话,貌似 wxPython 不错,但是长期停留在 2.x 时代。最近找到一个 支持 3.x 的 wxPython:http://wiki.wxpython.org/ProjectPhoenix但是跟 2.x 版本有一些 API 的区原创 2013-10-21 23:00:09 · 20750 阅读 · 3 评论 -
Solution: message box is hide behind window unless pressing ALT
This is due to the problematic message handling for WM_PAINT. See http://www.experts-exchange.com/Microsoft/Development/Q_22767210.html for more details.The suggested solutions:hm, it's strange原创 2013-08-16 06:58:56 · 700 阅读 · 0 评论 -
用 HTML 作为 Python 的图形界面
想用 Python 写点小程序,以前一直都是命令行界面的,想用图像界面,但又没多少选择。wxPython 貌似不错,可是不支持 Py3k。而且小程序,越简单越好,用不着带一个巨大的第三方库了。今天突然想到一个思路。用 HTML 做一个界面,可以有各种表单按钮什么的,通过 Ajax 和 Server 通讯。Server 当然就是 Python 了。Server 收到 Client 发过来的请求,原创 2012-07-15 08:59:06 · 48543 阅读 · 7 评论 -
在自动显示滚动条的窗口中,如何判断滚动条已显示
<br />比较窗口大小和客户区大小,看能否容纳下滚动条<br /> <br />CRect rectWnd, rectClient;GetWindowRect(&rectWnd);GetClientRect(&rectClient);if(rectWnd.Width()-rectClient.Width() >= GetSystemMetrics(SM_CXVSCROLL)) ; // 存在垂直滚动条if(rectWnd.Height()-rectClient.Height() >=原创 2011-03-18 04:47:00 · 3328 阅读 · 0 评论 -
CView 中的 WM_ACTIVATE 消息
在 CView 及其继承类中,接收不到 WM_ACTIVATE 消息。仔细看了 MSDN 对 CView 的说明,推断 CMainFrame 不会将接受到的 WM_ACTIVATE 消息转发到 CView 类。在 CView 类中,不应该处理消息 WM_ACTIVATE,而应该使用 CView::OnActivateFrame()。原创 2011-03-16 10:34:00 · 1746 阅读 · 0 评论 -
CEditView 中如何像记事本一样自动换行
CEditView 中的 EDIT 控件,默认带一个水平滚动条和一个垂直滚动条。要想设置成像记事本一样自动换行(word wrap),必须把水平滚动条去掉。问题在于,一旦 EDIT 窗体被创建的时候带滚动条,后期无论怎么修改,也不能实现自动换行。像记事本那样的程序,是在创建时就去掉了滚动条,后期再加上的。为此仔细研究了一下 MFC 中 CEditView 的代码,找到了解决方案。先来看一下继承顺序:CObject└CCmdTarget └CWnd └CView └CCtrlView原创 2011-03-17 12:33:00 · 4221 阅读 · 3 评论 -
MFC 对话框 开启 Aero 毛玻璃 半透明 效果 (二)
<br /><br /> <br />这张图的缺陷,不用说,就是那2个按钮了。为什么会这样的呢?<br />因为 DWM 使用 alpha 通道来绘图。然而,诞生已久的 GDI 并不支持 alpha 通道。<br />想用 alpha 通道来绘图,必须使用 GDI+ 或者 WPF 这类先进的东东。<br />碰巧的是,GDI 里面的黑色 RGB(0, 0, 0) 和 DWM 的完全透明色 00000000 恰好是一样的。<br />于是,DWM 就把 GDI 的黑色当作了透明色。这就是为什么在前一个例子里面原创 2010-06-27 06:37:00 · 6552 阅读 · 2 评论 -
MFC 对话框 开启 Aero 毛玻璃 半透明 效果 (一)
必备要求: 1. Vista 及以上操作系统。 2. VS2008 SP1 及以上编译环境。 导入下列文件: #if _WIN32_WINNT >= 0x0600 #include #pragma comment(lib, "dwmapi.lib") #endif 对话框的基类要选择 CDialogEx,而不是 CDialog。 在 OnInitDialog() 中添加下列代码: #if _WIN32_WINNT >= 0x0600 BOOL bDwm原创 2010-06-26 11:42:00 · 9160 阅读 · 1 评论 -
MFC 对话框 开启 Aero 毛玻璃 半透明 效果 (四)
<br />本来应该不会有这篇四的,但因为发现了 bug,所以要 patch 一下。<br /> <br />之前那个程序,退出的时候提示内存泄漏。<br /> <br />Detected memory leaks!<br />Dumping objects -><br />f:/dd/vctools/vc7libs/ship/atlmfc/src/mfc/afxvisualmanagerwindows.cpp(35) : {664} client block at 0x02BE30D8, sub原创 2010-06-28 02:06:00 · 3829 阅读 · 2 评论 -
wx.Log 示例
用的 python 3.3,加上 phoenix。关于 phoenix,请猛戳这里。因为没把 phoenix 放到 python 目录,而是放到当前目录了,所以 import 时候需要一点技巧。之前用到 log 都是自己写个 class,其实工作量也不太大。用 wx.Log 的好处是支持多线程,比较适合在 GUI 里面用。import importlibwxpath = "wxPytho原创 2013-10-28 08:25:17 · 2748 阅读 · 1 评论