我爱Aspx >> VC.Net >> 走出MFC子类化的迷宫输入时就只能输入A、B、C,并且只允许输入一个字母。
实现方法:
先派生一个自己的类CsuperEdit,Ctrl + W后,在其中处理WM_CHAR,然后再编辑这个消息处理函数:
void CSuperEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: Add your message handler code here and/or call default
TCHAR ch[20];
GetWindowText(ch,20);
if (strlen(ch) == 1 && (nChar <= ´C´ && nChar >= ´A´))
return;
if (nChar != ´A´
&& nChar != ´B´
&& nChar != ´C´
)
return;
CEdit::OnChar(nChar, nRepCnt, nFlags);
}
然后再给我们Cprog1Dlg类中加入一个数据成员CsuperEdit m_edit,在CProg1Dlg::OnInitDialog()中加入:
m_edit.SubclassDlgItem(IDC_EDIT1,this);
m_edit.SetWindowText("<请输入A、B、C>");
并处理EDIT向DIALOG发送的通知消息:EN_SETFOCUS:
【我对这篇文章有话说?】
C#和C++的速度大比拼(二)[05-21]
C#和C++的速度大比拼(第一部分)[05-21]
关于杠杆长度变化的问题(C问题)[05-21]
利用SharpZipLib实现实时zip压缩..[05-21]
简单分析用SPI实现防火墙[05-21]
简单分析用SPI实现防火墙[05-21]
WIN32用户界面设计基础之Cursor篇[05-21]
WIN32用户界面设计基础之Cursor篇[05-21]
程序员手记:简析Java RMI 与 .N..[05-21]
智力游戏九连环的算法[05-21]