2012-08-31 23:42
⁄ 工业·编程
⁄ 共 869字
很多时候我们对于MFC框架应用程序的默认图标十分不满意,所以我们来将把它换掉。
很多朋友会问我怎么把图标换掉,我看很多人写很多代码,出很多错,其实对于MFC框架应用程序我们可以不写一行代码把那个默认的图标换掉。找一张ICO图标,替换programname/res/programname.ico文件,就可以啦,这时候你运行后得到的图标可能还是原来MFC的默认图标,这时候你只要把工程目录下的Debug和Releas...
VC编程技巧阅读全文
2012-08-31 23:37
⁄ 工业·编程
⁄ 共 993字
最近在和同学做一个模拟时钟的程序,我们做的是基于对话框的,我想把对话框的形状做成圆形的,因为我们做的时钟外形就是圆形的,在其中我遇到了以下问题(在同学的帮助下都已解决):
下面是我在OninitDialog中添加的代码:
CRgn rgn; CRect rect; GetClientRect(rect); rgn.CreateEllipticRgn(rect.left,rect.top,rect.right,rect.bottom); SetWindowRgn(rgn,true);
可是运行后我...
代码集锦阅读全文
2012-08-31 23:35
⁄ 工业·编程
⁄ 共 5669字
下面是实现程序窗口圆角多角矩形的三种方法,但效果都比较差。只是简单的将边角裁 剪,从边框和标题栏上都可以看出来。不过可以通过这三个函数来学习下
SetWindowRgn()及创建一个HRGN的不同方法。
方法1
[cpp] view plaincopy void SetWindowEllipseFrame1(HWND hwnd, int nWidthEllipse, int nHeightEllipse) { HRGN hRgn; RECT rect; ...
代码集锦阅读全文
2012-08-31 23:32
⁄ 工业·编程
⁄ 共 274字
SetWindowRgn函数可以设定窗口的多种边界剪切域,而不是像SetWindowRect只能设置矩形的外包边界。
因此利用SetWindowRgn能够实现任意不规则的窗口边界。实现非常个性化的窗口,但是如果通过SetWindowRgn将窗口的中部的区域剪切掉,使得绘制窗口时不绘制,从而形成一个完全透明的”洞“,从这个洞可以看到当前窗口下面的窗口。
鼠标单击被剪切掉的区域时,鼠标消息会传到当前窗口的下面的窗...
MFC阅读全文
2012-08-31 23:29
⁄ 工业·编程
⁄ 共 1137字
Settimer是设置一个计时器并开始执行计时器Ontimer中的代码,Ontimer是计时器所执行的代码。KillTimer用于停止计时器。 Settimer是设置,Ontimer是响应Settimer消息的。
SetTimer函数的用法
1 )用WM_TIMER来设置定时器
先请看SetTimer这个API函数的原型
UINT_PTR SetTimer( HWND hWnd,//和定时器相关联的窗口 ...
VC, 学习笔记, 定时器阅读全文
2012-08-31 23:26
⁄ 工业·编程
⁄ 共 279字
1 MFC中的 __super 和 java 中 super 类似,相当于基类的名称,都可以用来调用基类成员;
2 __xxxx 类型的,是编译器或库内部使用的;
3 __super是编译器关键词,是一个辅助工具,在多重继承和多级继承环境下很方便,当你需要调用基类成员时,不需要你记忆这个成员到底是哪个基类提供的,编译器会帮你找到正确的基类。如果存在二义性(比如有两个基类提供了相同名称的成员),编译器会报错,在错误信息中会指出有哪些基类具有此...
MFC阅读全文
2012-08-31 23:15
⁄ 工业·编程
⁄ 共 203字
在VC中使用Edit控件显示内容时,常常需要对显示的内容进行换行,一般采用关联一个CString变量的方式,然后在需要换行的地方将CString的关联变量加上:"\r\n",注意必须是换行回车"\r\n"只加"\n"是不行的。
而且还有一个需要注意的是需要将控件属性Multiline设为true,否则也不会换行,这个经常会忘记,加上"\r\n"之后却没有实现换行,最后发现...
VC阅读全文
2012-08-31 23:11
⁄ 工业·编程
⁄ 共 1049字
.sln 和 .suo都是是解决方案文件。详见:VS项目里*.sln和*.suo文件的作用
.ncb文件则是工程的数据库文件,保存一些关于类,文件配置等等的东西,而VS2005的update intellisense是众所周知的犯人!经常是一更新就没响应了,网上的解决办法是把安装目录下的某个dll删了或者重命名,以前也试过,不过好像导致一些问题,后来打了SP1的补丁之后虽说是好点了,但是还是感觉不爽!
&...
visual_studio阅读全文
2012-08-31 23:08
⁄ 工业·编程
⁄ 共 496字
最小化、最大化窗口消息响应放在CWnd::OnSysCommand函数中,以下举一例,该例重载了窗口的最小化和最大化操作为隐藏和显示窗口,当然,此例功能实现是在程序有托盘图标的情况下实现的,要不然这样的功能会让用户觉得很不方便。关于托盘图标的内容,请看前面两篇。
>>>托盘图标的删除和托盘程序的优化
void CMyDlg::OnSysCommand(UINT nID, LPARAM lParam) { if ((n...
MFC阅读全文
2012-08-31 23:05
⁄ 工业·编程
⁄ 共 586字
上一篇讨论了托盘图标的添加,程序退出后虽然系统会自动删除托盘图标,但这种工作最好在程序中完成,以保证程序所有的动作都在我们的代码控制之内.
>>>托盘图标的添加和消息响应
3.删除托盘图标
NOTIFYICONDATA nid; nid.cbSize = sizeof nid; nid.hWnd = GetSafeHwnd(); nid.uID = IDR_MAINFRAME; nid.uFlags = NIF_MESSAGE | NIF_ICON; Shell_NotifyIcon(NIM_DELETE,&nid)...
代码集锦阅读全文