2012-08-30 20:16
⁄ 工业·编程
⁄ 共 420字
CtreeCtrl的HitTest函数能够得到与当前鼠标位置相关的项。
该函数可以实现,在带有checkbox的树中,当选中父节点的checkbox, 子节点的checkbox可自动选中。因为可以得到父节点的HTREEITEM ,根据这个属性可以遍历子节点。
void CMyDlg::OnNMClickTree1(NMHDR *pNMHDR, LRESULT *pResult) { // TODO: 在此添加控件通知处理程序代码 CPoint pt; UINT nFlags; ::GetCursorPos(&pt); ::Sc...
MFC阅读全文
2012-08-30 20:09
⁄ 工业·编程
⁄ 共 1635字
c++语言本身是不能删除文件或文件夹的,他们是windows操作系统里的东西,所以得借助其api函数。
其一:使用shell 接口
void FileDelete(CString directory) { SHFILEOPSTRUCT shFileOp; char strCurrentPath[MAX_PATH]; memset(&shFileOp,0,sizeof(shFileOp)); GetCurrentDirectory(MAX_PATH,strCurrentPath); strcat_s(strCurrentPath,sizeo...
代码集锦阅读全文
2012-08-30 19:15
⁄ 工业·编程
⁄ 共 3167字
注:本案例需要GDI+
int GetEncoderClsid(const WCHAR* format, CLSID* pClsid) { UINT num = 0; // number of image encoders UINT size = 0; ...
代码集锦阅读全文
2012-08-29 15:58
⁄ 工业·编程
⁄ 共 1148字
以CSkinEdit( public CEdit )为例,设置Edit的属性:Multiline, 无Border.
效果图:
1.定义类成员变量:
CBitmap m_bmp;
CBrush m_brush;
在WM_CREATE消息中初始化它们:
int CSkinEdit::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CEdit::OnCreate(lpCreateStruct) == -1) return -1; // TODO: Add your specialized creation code here HBITMAP h...
UI界面阅读全文
2012-08-29 15:49
⁄ 工业·编程
⁄ 共 700字
1. MFC
优点:VS2008以及VS2010的扩展确实很强大,特别是原生的窗口运行时停靠以及PropertyGrid确实很强大
缺点:默认字体很模糊,无论你对MFC多了解,C++多熟悉,每次写代码时依然要重新熟悉代码,更不用提分析别人写的MFC代码,一个字:乱。
2. WTL
优点:Windows下有个最好的例子:Google Chrome
缺点:缺乏设计器,文档例子很少
3. wxWidgets
优点:虚幻...
UI界面, 分析阅读全文
2012-08-29 15:36
⁄ 工业·编程
⁄ 共 5760字
Frame、View、Document的关系,非常重要,它们的确不是孤立的,而是互相联系的。
如果是SDI程序,CMainFrame调用GetActiveView获得CView,而CView可以调用GetDocument获得CDocument。如果已知CDocument,可以使用GetFirstViewPosition获得第一个相关的CView,然后使用GetNextView获得下一个的CView。之所以这么做,是因为MFC允许一个CDocument拥有多个CView。
》》》MFC控制条窗口布局原理
...
MFC阅读全文
2012-08-29 15:16
⁄ 工业·编程
⁄ 共 4129字
CMenu类从CObject类派生而来。为什么要使用CMenu类呢?AppWzard不是把菜单做好了吗?在资源编辑器上修改菜单不是很方便吗? 学vc++稍微深入一点好,至少要能搞清楚AppWizard在背后都干了些什么东西。事实上mfc就是用CMenu类来生成菜单的。让我们就从CMenu开始吧。
CMenu生成的菜单有两种:Popup类型和非Popup类型。这两种方法里又可以分成使用资源编辑器生成的菜单资源和不使用这个资源...
UI界面阅读全文
2012-08-29 15:10
⁄ 工业·编程
⁄ 共 6498字
大家可能一直在用VC开发软件,但是对于这个编译器却未必很了解。原因是多方面的。大多数情况下,我们只停留在“使用”它,而不会想去“了解”它。因为它只是一个工具,我们宁可把更多的精力放在C++语言和软件设计上。我们习惯于这样一种“模式”:建立一个项目,然后写代码,然后编译,反反复复调试。但是,所谓:“公欲善其事,必先利其器”。如果我们精于VC开发环境,我们是不是能够做得更加游刃有余呢?
闲话少...
VC阅读全文
2012-08-29 15:07
⁄ 工业·编程
⁄ 共 2167字
做一个MFC程序的时候碰到一个需求。就是需要根据定制情况,动态生成菜单,菜单的具体结构和信息是之前不知道的(因此不能利用工具构造),点击不同类型的菜单会触发特定的一类事件(需要动态绑定事件)。这种需求实际是蛮不BT的,很多场合下都可能会有,用C#写了个Demo花了不到半个小时。但转到MFC下来写,就费尽周折。其实这个问题代表了在MFC中动态创建资源绑定事件的一般性问题,所以总结一下。
...
UI界面阅读全文
2012-08-29 15:00
⁄ 工业·编程
⁄ 共 677字
标准的menu或者button消息映射句柄类似于下面这种形式:
ON_COMMAND(ID_MYCOMMAND, OnMyCommand)
但是如果你是动态创建的button/menu项,你可能在编译时无法知道命令ID(COMMAND ID).,它可能被存储在一个数据成员里,类似于CSqueegie::m_nMeMyMineID。怎么办呢?
很简单:用ON_COMMAND_EX_ RANGE表示不受限制的范围。
ON...
MFC阅读全文