- 博客(13)
- 资源 (9)
- 收藏
- 关注
原创 CMainFrame::PreCreateWindow函数中WS_CLIPCHILDREN属性的修改需要慎重!
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)...{ if( !CFrameWnd::PreCreateWindow(cs) ) return FALSE; // TODO: Modify the Window class or styles here by modifying cs.cx = 350;
2007-04-25 16:16:00 1868
转载 OnEraseBkgnd相关的一些理解
如参考链接中所指出的一些知识如下: Q: OnEraseBkgnd函数中返回TRUE或FALSE有什么区别? A:
2007-04-24 14:39:00 1754
原创 OnCtlColor/WM_CTLCOLOR与OnDrawItem/WM_DRAWITEM的一点关系
联系:二者均由父窗体内重载,但改变的确是子窗体的显示细节区别一、前者只能改变颜色 ,后者可自定义更多细节区别二、后者所施加的空间必须为Owner Draw区别三、前者不能作用于Button参考文献:《白乔原创:VC之美化界面篇》
2007-04-24 13:46:00 2703
原创 OnCtlColor/WM_CTLCOLOR对于Static控件有效而对于Button无效
似乎微软改变了主意:http://www.80diy.com/home/20010908/12/277821.html重载OnCtlColor只能改变窗体和STATIC的颜色,而对于Button则不行。而对于STATIC起作用的代码,对于CheckBox也有作用。其他参考链接:http://www.21cnvip.com/csdn/html/20051222/09/4474129.html
2007-04-24 11:33:00 4902
原创 透明CheckBox
在类似MSN Messenger的Log in界面上同样需要透明的checkbox ,与透明Static相近,重载OnPain()。但此处需要自行绘制chebox的小方框,并空出其位置后绘制文字。DrawFrameControl可绘制小方框,而15像素差不多是个比较好的绘制举行宽度,同理,可在控件左侧开始20个像素处开始绘制文字为佳。void CTransCheck::OnPaint() {
2007-04-20 09:00:00 2484
原创 WS_CLIPCHILDREN与WS_CLIPSIBLINGS
英文单词解释clip:夹子、子弹夹、回形针;夹住,修剪sibling:同胞兄弟或姐妹overlapped:重叠这两个Window Stype的特性与异同素来不太清楚,今日作一笔记:MSDN的解释为:WS_CLIPCHILDREN Excludes the area occupied by child windows when you draw within the parent wind
2007-04-18 20:51:00 3487 1
原创 WM_DRAWITEM/CWnd::OnDrawItem
一直以来闹不清楚WM_PAINT和WM_DRAWITEM有什么关系,前者不必多言,后者在自绘控件的相关帖子中被频繁提及。今日 经过试验以及参考MSDN得出:WM_DRAWITEM均被控件的父窗体调用和处理。举简单例子如下:Project有三个主要的类:1、CApp theApp2、CDialog Dlg3、CMyButton Btn;//其parent为dlg 若要自绘按钮CMyButton
2007-04-18 19:55:00 3457 1
原创 解决问题:ASSERT in Wincore.cpp ,line 884
Project A.dll有如下相关结构与接口:(伪VC代码)Class CChildView : public;Class CMainFrame {… CChildView m_wndView; …};CMainFrame::ShowDialingPad(){ CMyDialog * pDlg=new CMyDialog();pDlg->
2007-04-11 09:33:00 3952
原创 VC编译多个相关Project方法点滴(再续)
有一种情况会引起故障,倘若某个dll引用了其他的other.dll,则需要把 ohter.dll拷贝至/output下。否则出现如下状况:有工程A,输出为A.dll;工程B输出为B.exe。经设置,将二工程输出的dll和exe均放到../Debug/目录下。且将工程A调试调用的Executable for debug sessions设置为../debug/B.exe。 很奇怪的是:
2007-04-09 17:39:00 1878 1
原创 TabCtrl控件的使用一则——程序架构
传统地,Tab控件在切换Tab页时,需要切换页相对应的子窗体的隐藏与显示。单独对子窗体控制,略显繁杂。本文采取如下思路: 将诸子窗体放到某个承载窗体(比如CWnd类型或者CDialog类型对象)上,在Tab切换时,操控承载窗体的显隐即可达到目的。又传统地,程序需要维护一个对象数组,每个对象用于维护Tab和承载窗体或子窗体之间的关系;而本文采取如下方法:利用TCITEM结构体的lParam字
2007-04-06 14:56:00 4411 4
原创 模拟CTabCtrl控件的单击事件
1、必须在CTabCtrl所在父窗体处理WM_NOTIFY消息2、用一下代码段模拟单击事件 m_wndView.m_Tab.SetCurSel(m_wndView.m_Tab.GetItemCount()-1); NMHDR nh; nh.hwndFrom=m_wndView.m_Tab.m_hWnd; nh.idFrom=IDC_TABCTRL; nh.code=
2007-04-06 10:54:00 2350 1
原创 使用CHtmlView需要注意的问题之一
除了需要重载CHtmlView的几个函数之外,还需要在Allication的InitInstance中加入:// Call if using OLE Controls AfxEnableControlContainer(); //AfxOleInit(); ::CoInitialize(NULL);相当于在Wizard创建工程时选择允许OLE控件
2007-04-05 14:37:00 1246
原创 去掉窗体的边框,并且禁止拖动改变窗体大小
在Win32 SDK程序中,Create时创建一个一个窗体。欲去除其边框标题栏等属性,宜在WM_CREATE消息中写,或者在子窗体(例如按钮)的单击消息中以SetWindowLong(hwnd, GWL_STYLE,GetWindowLong(hwnd, GWL_STYLE) & (~(WS_CAPTION | WS_BORDER|WS_SYSMENU|WS_T
2007-04-03 14:24:00 4040
《Windows核心编程》随书光盘
2018-08-08
Statistical Analysis With Excel
2018-08-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人