惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Help Net Security
博客园 - Franky
GbyAI
GbyAI
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
爱范儿
爱范儿
IT之家
IT之家
酷 壳 – CoolShell
酷 壳 – CoolShell
aimingoo的专栏
aimingoo的专栏
博客园_首页
MongoDB | Blog
MongoDB | Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Recent Announcements
Recent Announcements
Scott Helme
Scott Helme
有赞技术团队
有赞技术团队
M
MIT News - Artificial intelligence
C
CERT Recently Published Vulnerability Notes
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Jina AI
Jina AI
F
Fortinet All Blogs
N
Netflix TechBlog - Medium
L
LangChain Blog
L
LINUX DO - 最新话题
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
H
Hacker News: Front Page
MyScale Blog
MyScale Blog
P
Palo Alto Networks Blog
G
Google Developers Blog
Google DeepMind News
Google DeepMind News
AI
AI
T
Troy Hunt's Blog
Microsoft Azure Blog
Microsoft Azure Blog
阮一峰的网络日志
阮一峰的网络日志
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Vercel News
Vercel News
Microsoft Security Blog
Microsoft Security Blog
罗磊的独立博客
S
Secure Thoughts
大猫的无限游戏
大猫的无限游戏
博客园 - 叶小钗
人人都是产品经理
人人都是产品经理
Blog — PlanetScale
Blog — PlanetScale
博客园 - 司徒正美
Apple Machine Learning Research
Apple Machine Learning Research
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 三生石上(FineUI控件)
S
Security @ Cisco Blogs
Cloudbric
Cloudbric
E
Exploit-DB.com RSS Feed
Attack and Defense Labs
Attack and Defense Labs

博客园 - 饽饽

C语言指针的用法 CRC 循环冗余校验码 (VC编程) 无线网卡或笔记本找不到网络的一个原因 (one reason of your laptop cannot find wireless network) 电脑能够上QQ,可以ping IP,玩网络游戏,就是不能上网,收发电子邮件的解决办法 有关学校的打油诗 CMPP2.0 协议SP端的·NET开发 C++中的虚函数(virtual function) - 饽饽 - 博客园 MIMO的文章 VC++调用其它语言编写的程序 - 饽饽 - 博客园 VC++调用其它程序2 - 饽饽 - 博客园 Vc编程基础 VC MFC基本控件的使用 VC基础教程 基于WINSOCK控件的VC网络通讯程序 VISCAL C++下WINSOCK CONTROL类(ACTIVEX)的使用 用Winsock实现语音全双工通信使用 socket编程原理 windows网络编程 用Winsock控件实现点对点通信
VC常用技巧集锦
饽饽 · 2005-03-30 · via 博客园 - 饽饽

一。如何限制编辑框中的准许字符以及修改输入的字符
使用ClassWizard处理WM_CHAR消息,计算nChar参量并决定所执行的操作,用户可以确定是否修改、传送字符。下例说明了如何显示字母字符,如果字符是字母字符,则调用CWnd ; OnChar,否则不调用OnChar.
void CMyEdit : : OnChar (UINT nChar , UINT nRepCnt , UITN nFlags )
{
file://Determine if nChar is an alphabetic character .
if (: : IsCharAlpha ( ( TCHAR) nChar ) )
CEdit : : OnChar (nChar, nRepCnt , nFlags );
}
如果要修改字符,则不能仅仅简单地用修改过的nChar调用CEdit : : OnChar,然后CEdit: : OnChar调用CWnd: : Default获取原来的wParam 和lParam 的值 ,这样是不行的。要修改一个字符,需要首先修改nChar,然后用修改过的nChar调用CWnd: : DefWindowProc。下例说明了如何将字符转变为大写:
file://Make all characters uppercase
void CMyEdit : : OnChar (UINT nChar , UINT nRepCnt , UINT nFlags )
{
file://Make sure character is uppercase .
if (: : IsCharAlpha ( .( TCHAR) nChar)
nChar=: : CharUpper (nChar ) ;
file://Bypass default OnChar processing and directly call
file://default window proc.
DefWindProc (WM_CHAR, nChar , MAKELPARAM (nRepCnt , nFlags )) ;
}

二。在程序运行期间,怎样禁止窗口右上方的关闭按钮
CMenu *pMenu = AfxGetMainWnd()->GetSystemMenu(FALSE) ;
if (pMenu)
pMenu->EnableMenuItem(SC_CLOSE, MF_BYCOMMAND|MF_GRAYED) ;

// 变为非禁止状态
CMenu *pMenu = AfxGetMainWnd()->GetSystemMenu(FALSE) ;
if (pMenu)
pMenu->EnableMenuItem(SC_CLOSE, MF_BYCOMMAND|MF_ENABLED) ;

三。画图屏幕不闪烁的方法
当使视窗的某一区域无效时,系统将发送WM_UPDATE消息,引发视类的重画。如果在OnDraw()函数中简单地将所有的图形对象重画,将引起明显的闪烁。因此,需要做相应的处理。本系统采用了先在内存中绘制图形,然后再把绘好的图形以位图方式从内存拷贝到窗口客户。
void CDrawView:nDraw(CDC* pDC)
{
CDrawDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);

CDC dc;
CBitmap bitmap;

CBitmap* pOldBitmap;
CRect client;
CRect rect;
pDC->GetClipBox(client);//检取无效区
GetClientRect(rect);//检取整个客户区
if(dc.CreateCompatibleDC(pDC))//创建一个与pDC兼容的内存设备环境
{
if(bitmap.CreateCompatibleBitmap(pDC,rect.Width(),
rect.Height()))//创建一与pDC兼容的位图,大小为整个客户区
{
OnPrepareDC(&dc,NULL);//使dc与pDC具有同样的映射关系
pOldBitmap=dc.SelectObject(&bitmap);//将位图选入内存环境
dc.SelectClipRgn(NULL);//使dc的整个客户区都成无效区
dc.IntersectClipRect(client);//再“与上”检取的无效区,使
file://内存环境与pDC检取的无效区相等
}
}
CBrush brush;
if(!brush.CreateSolidBrush(RGB(255,255,255)))
return ;
brush.UnrealizeObject();
dc.FillRect(client,&brush);//将dc的作图区刷新成背景色

if(m_drawObjs.GetCount()!=0)
Draw(&dc);//将所有的画图对象在内存裁减区内重画

pDC->BitBlt(client.left,client.top,client.Width(),client.Height(),
&dc,client.left,client.top,SRCCOPY);//将内存裁减区的位图
file://拷贝到窗口裁减区
dc.SelectObject(pOldBitmap);

}