软件开发
文章平均质量分 68
马大叔小舅舅
不积跬步,无以至千里;不积小流,无以成江海。骐骥一跃,不能十步;驽马十驾,功在不舍。锲而舍之,朽木不折;锲而不舍,金石可镂。
展开
-
vc的菜单,工具栏
首先,MFC会自动生成一些菜单,我们也可以在resource view中添加菜单。点击菜单栏属性--〉左上角校园最图形,可以将属性页显示。不会随着菜单项变动丢失。 <br />ID号变灰的栏是不可以编辑的。是弹出的POPUP菜单。它不能被用来做响应。大写字母标示资源。IDI IDC IDM分别表示不同的类型资源。 <br />一个菜单项可以由CMAINFRAM CXXXVIEW CXXApp CXXDOC view类先对其响应,接着doc类对其进行响应,MAINFRAM第三个对其进行响应,第四个响应的原创 2010-09-11 21:06:00 · 1478 阅读 · 0 评论 -
Invalidate函数的总结
<br />InvalidateRect只是增加重绘区域,在下次WM_PAINT的时候才生效 <br /><br />InvalidateRect函数中的参数TRUE表示系统会在你画之前用背景色将所选区域覆盖一次,默认背景色为白色,可以通过设置BRUSH来改变背景色。 <br /><br />Invalidate()之后:(MFC的,顺便了) <br />OnPaint()->OnPrepareDC()->OnDraw() <br />所以只是刷新在OnPaint()和OnDraw()函数中的绘图语句。其它转载 2010-09-08 10:00:00 · 582 阅读 · 0 评论 -
C++虚函数表与对象布局(转)讲的很透彻
<br />每个含有虚函数的类有一张虚函数表(vtbl),表中每一项指向一个虚函数的地址,实现上是一个函数指针的数组。<br />虚函数表既有继承性又有多态性。每个派生类的vtbl继承了它各个基类的vtbl,如果基类vtbl中包含某一项,则其派生类的vtbl中也将包含同样的一项,但是两项的值可能不同。如果派生类重载(override)了该项对应的虚函数,则派生类vtbl的该项指向重载后的虚函数,没有重载的话,则沿用基类的值。<br />在类对象的内存布局中,首先是该类的vtbl指针,然后才是对象数据。在通过转载 2010-09-13 18:44:00 · 846 阅读 · 0 评论 -
内嵌第三方EXE程序窗口
最近有个开发任务,将一个exe程序内嵌至另一个exe窗口中执行,原创 2015-08-13 16:01:09 · 7313 阅读 · 6 评论 -
为ActiveX控件增加安全认证
首先在工程名Ctrl.cpp文件中增加这三个函数HRESULT CreateComponentCategory(CATID catid, WCHAR* catDescription) { ICatRegister* pcr = NULL ; HRESULT hr = S_OK ; hr = CoCreateInstance(CLSID_StdComponentCategories原创 2015-11-07 16:01:35 · 837 阅读 · 1 评论 -
ActiveX控件GUID说明
一般一个控件代码中一共有9处共5个ID工程名.odl文件里一共有4个ID,分别与工程中其他4个地方对应:a) 第一个guid与工程名.cpp中的对应b) 第二个guid与工程名Ctrl.cpp中的第二个对应c) 第三个guid与工程名Ctrl.cpp中的第三个对应d) 第四个guid与工程名Ctrl.cpp中的第一个对应。(这个是主ID)最后一个guid在工程名P原创 2015-10-10 16:00:56 · 1022 阅读 · 0 评论 -
UTF8与GBK间的转换
1. GBK转UTF8string GBKToUTF8(const std::string& strGBK){ string strOutUTF8 = ""; WCHAR * str1; int n = MultiByteToWideChar(CP_ACP, 0, strGBK.c_str(), -1, NULL, 0); str1 = new原创 2015-09-25 10:07:58 · 896 阅读 · 0 评论