VC经典代码(二)
2015-10-13 20:35
267 查看
138 这里有很多CRichEditCtrl控件的高级用法:http://www.codeguru.com/Cpp/controls/richedit/
139 CGridCtrl控件的一些应用:http://www.vckbase.com/code/listcode.asp?mclsid=3&sclsid=327
140 一个不错的地方:http://www.vckbase.com/document/listdoc.asp?mclsid=3&sclsid=323
141 怎样使右键菜单也能变灰、打勾:http://community.csdn.net/Expert/topic/4501/4501123.xml?temp=.4074823
142 MD5加密解密的API:http://community.csdn.net/Expert/topic/4502/4502325.xml?temp=.6894647
MD5Init
MD5Final
MD5Update
143 用CBrush::CreateStockObject(HOLLOW_BRUSH);或CBrush::CreateStockObject(NULL_BRUSH);这两个可以创建镂空的画刷。
144 创建不规则窗体:http://www.vckbase.com/document/viewdoc/?id=1345
145 拖动一个没有标题栏的窗体:http://community.csdn.net/Expert/topic/4499/4499796.xml?temp=6.763858E-02
146 屏蔽浏览器中的弹出广告,下面地址中是在ATL中采用BHO服务的方法:http://www.codeproject.com/atl/popupblocker2.asp
CSDN上有个讨论贴:http://community.csdn.net/Expert/topic/4496/4496918.xml?temp=.157284
147 远程线程注入:
http://www.codeproject.com/threads/RmThread.asp
http://www.codeproject.com/library/InjLib.asp
http://www.codeproject.com/win32/Remote.asp
148 CEditView中两个函数的用法:
GetEditCtrl().ModifyStyle (0 , WS_VSCROLL |ES_AUTOHSCROLL |ES_AUTOVSCROLL |WS_HSCROLL |ES_WANTRETURN | ES_MULTILINE);
GetEditCtrl().GetSel(m_nStartChar, m_nEndChar ) ;
149 给对话框窗体底部加上状态条,把下面代码加进对话框的OnInitDialog()函数中:
150 从注册表中读取cpu的频率:
读取 ~MHz 这个键值 ,记住那键前有个~别忘了,在注册表的HKEY_LOCAL_MACHINE\\Hardware\\Description\\System\\CentralProcessor\\0 //0 为第一个cpu
Hardware\\Description\\System\\CentralProcessor\\1 //1 为第二个cpu
得到cpu的数量,摘自:http://community.csdn.net/Expert/topic/4635/4635246.xml?temp=.7182123
处理WM_CTLCOLOR消息:
152 怎样获得字体得宽度,高度,间距等信息:GetTextMetrics
153 为了让你对i++有个更清楚的认识,先看如下代码:
-------------------
int i=2;
i=(i++) % 3;
printf("i=%d",i); //这里输出i=?呢
-------------------
下面是前两行代码的汇编代码:
------------------------------------------------------------------------------------------------------------------
00401778 mov dword ptr [ebp-4],2 把值2写入内存中[ebp-4]指向的位置(后面称变量i) //相当于i=2
0040177F mov eax,dword ptr [ebp-4] 把i的当前值2赋于eax中 //把eax当成了i的临时变量了
00401782 cdq
00401783 mov ecx,3 把3赋于ecx中 //同样ecx也成了临时变量了
00401788 idiv eax,ecx eax % ecx(2%3),结果放入edx中(等于2)
0040178A mov dword ptr [ebp-4],edx 把edx中的值2写入变量i //相当于计算i=2
% 3
0040178D mov edx,dword ptr [ebp-4]
139 CGridCtrl控件的一些应用:http://www.vckbase.com/code/listcode.asp?mclsid=3&sclsid=327
140 一个不错的地方:http://www.vckbase.com/document/listdoc.asp?mclsid=3&sclsid=323
141 怎样使右键菜单也能变灰、打勾:http://community.csdn.net/Expert/topic/4501/4501123.xml?temp=.4074823
142 MD5加密解密的API:http://community.csdn.net/Expert/topic/4502/4502325.xml?temp=.6894647
MD5Init
MD5Final
MD5Update
143 用CBrush::CreateStockObject(HOLLOW_BRUSH);或CBrush::CreateStockObject(NULL_BRUSH);这两个可以创建镂空的画刷。
144 创建不规则窗体:http://www.vckbase.com/document/viewdoc/?id=1345
145 拖动一个没有标题栏的窗体:http://community.csdn.net/Expert/topic/4499/4499796.xml?temp=6.763858E-02
146 屏蔽浏览器中的弹出广告,下面地址中是在ATL中采用BHO服务的方法:http://www.codeproject.com/atl/popupblocker2.asp
CSDN上有个讨论贴:http://community.csdn.net/Expert/topic/4496/4496918.xml?temp=.157284
147 远程线程注入:
http://www.codeproject.com/threads/RmThread.asp
http://www.codeproject.com/library/InjLib.asp
http://www.codeproject.com/win32/Remote.asp
148 CEditView中两个函数的用法:
GetEditCtrl().ModifyStyle (0 , WS_VSCROLL |ES_AUTOHSCROLL |ES_AUTOVSCROLL |WS_HSCROLL |ES_WANTRETURN | ES_MULTILINE);
GetEditCtrl().GetSel(m_nStartChar, m_nEndChar ) ;
149 给对话框窗体底部加上状态条,把下面代码加进对话框的OnInitDialog()函数中:
----------------------------------------------------------- static UINT indicators[] = { ID_SEPARATOR, // status line indicator ID_INDICATOR_CAPS, ID_INDICATOR_NUM, ID_INDICATOR_SCRL, }; //下面m_wndStatusBar必须先在对话框类中声明:CStatusBar m_wndStatusBar; if (!m_wndStatusBar.Create(this,WS_CHILD|WS_VISIBLE|WS_BORDER)|| !m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT))) { AfxMessageBox("Status Bar not created!", NULL, MB_OK ); } CRect rect; this->GetWindowRect(&rect); m_wndStatusBar.MoveWindow(2,rect.bottom-GetSystemMetrics(SM_CYSIZE)-27,rect.Width()-4,20); m_wndStatusBar.ShowWindow(SW_SHOW); m_wndStatusBar.SetWindowText("Ready"); -----------------------------------------------------------把上面代码加在OnInitDialog里,注意:m_wndStatusBar变量的声明语句CStatusBar m_wndStatusBar;要放在你的对话框类C****Dlg中才行。
150 从注册表中读取cpu的频率:
读取 ~MHz 这个键值 ,记住那键前有个~别忘了,在注册表的HKEY_LOCAL_MACHINE\\Hardware\\Description\\System\\CentralProcessor\\0 //0 为第一个cpu
Hardware\\Description\\System\\CentralProcessor\\1 //1 为第二个cpu
得到cpu的数量,摘自:http://community.csdn.net/Expert/topic/4635/4635246.xml?temp=.7182123
----------------------------------------------------------------------- SYSTEM_INFO siSysInfo; GetSystemInfo(&siSysInfo); printf(" Number of processors: %u\n", siSysInfo.dwNumberOfProcessors); -----------------------------------------------------------------------151 改变CStatic控件的前景、背景色:http://community.csdn.net/Expert/topic/4507/4507710.xml?temp=.1524164
处理WM_CTLCOLOR消息:
--------------------------------------------------------------------- HBRUSH CQQDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr; // TODO: Change any attributes of the DC here if(CTLCOLOR_STATIC == nCtlColor) //if(CTLCOLOR_STATIC == nCtlColor && pWnd->GetDlgCtrlID()==IDC_TOOL) //改成这样就只对IDC_TOOL这一个静态文本控件起作用了 { pDC->SetBkColor(RGB(255,255,255)); //背景色为白 pDC->SetTextColor(RGB(0,0,0)); //前景色为黑 hbr = CreateSolidBrush(RGB(255,255,255)); //其它区域也为白 //上面三行代码改成下面这三行就创建空心刷子,就可以实现在背景上写字的效果了 //pDC->SetBkMode(TRANSPARENT); //pDC->SetTextColor(RGB(0,0,0)); //hbr = CreateStockObject(NULL_BRUSH); } else hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); // TODO: Return a different brush if the default is not desired return hbr; } ----------------------------------------------------------------------再加一个判断if (pWnd->GetDlgCtrlID()==IDC_....)就可以指定是改变哪个的颜色了,其它控件的颜色的改变方法和这个大同小异。
152 怎样获得字体得宽度,高度,间距等信息:GetTextMetrics
153 为了让你对i++有个更清楚的认识,先看如下代码:
-------------------
int i=2;
i=(i++) % 3;
printf("i=%d",i); //这里输出i=?呢
-------------------
下面是前两行代码的汇编代码:
------------------------------------------------------------------------------------------------------------------
00401778 mov dword ptr [ebp-4],2 把值2写入内存中[ebp-4]指向的位置(后面称变量i) //相当于i=2
0040177F mov eax,dword ptr [ebp-4] 把i的当前值2赋于eax中 //把eax当成了i的临时变量了
00401782 cdq
00401783 mov ecx,3 把3赋于ecx中 //同样ecx也成了临时变量了
00401788 idiv eax,ecx eax % ecx(2%3),结果放入edx中(等于2)
0040178A mov dword ptr [ebp-4],edx 把edx中的值2写入变量i //相当于计算i=2
% 3
0040178D mov edx,dword ptr [ebp-4]
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- C++联合体转换成C#结构的实现方法
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C++变位词问题分析
- C/C++数据对齐详细解析
- C++基于栈实现铁轨问题
- C++中引用的使用总结
- 使用Lua来扩展C++程序的方法
- C++中调用Lua函数实例
- Lua和C++的通信流程代码实例
- C与C++之间相互调用实例方法讲解
- 解析C++中派生的概念以及派生类成员的访问属性
- C++ Custom Control控件向父窗体发送对应的消息