按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
UINT IsDlgButtonChecked(int nIDButton) const;
返回检查框或单选按钮的选择状态 。返回值为 0 表示按钮未被选择,为 1 表示按钮被选
择,为 2 表示按钮处于不确定状态(仅用于检查框 )。
同时还可以调用 CWnd 成员函数 GetWindowText()、GetWindowTextLength()和 SetWindow
…Text()来查询或设置按钮中显示的正文。
实例 5…1:控件基本使用方法实例。源代码在光盘中“05实例 5…1RMB ”目录下。
下面通过一个基于对话框的例子来说明控件的基本使用方法,该示例实现了将阿拉伯数
字转换为汉字数字的功能。
主要代码如下:
const char* RMB(double rmb)
{
if(rmb19) return NULL;
int i=strlen(tmp)…1;c;
char *srcPtr=tmp;*dstPtr=result;
bool bPrevZero=false;
for(; *srcPtr; srcPtr++;i……) {
if(*srcPtr==’。’) continue;
c=*srcPtr…’0’;
if(c!=0) {
strcpy(dstPtr;CCC'c'); dstPtr+=2;
if(srcPtr==tmp && c==1 && strcmp(QQQ'i';〃拾〃)==0) dstPtr…=2;
strcpy(dstPtr;QQQ'i'); dstPtr+=2;
bPrevZero=false;
continue;
}
if(bPrevZero) {
if(strcmp(QQQ'i';〃 圆〃)==0 || strcmp(QQQ'i';〃万〃)==0 || strcmp(QQQ'i';〃亿〃)==0) {
dstPtr…=2; *dstPtr=0;
if(strcmp(dstPtr…2;〃亿〃)) {strcpy(dstPtr;QQQ'i'); dstPtr+=2;}
bPrevZero=false;
·115 ·
…………………………………………………………Page 125……………………………………………………………
Visual C++ 6。0 程序设计从入门到精通
}
} else {
if(strcmp(QQQ'i';〃 圆〃) && strcmp(QQQ'i';〃万〃) && strcmp(QQQ'i';〃亿〃)) {
strcpy(dstPtr;〃零〃); dstPtr+=2;
bPrevZero=true;
}else {
strcpy(dstPtr;QQQ'i'); dstPtr+=2;
bPrevZero=false;
}
}
}
i=strlen(result);
if(strcmp(result+i…2;〃零〃)==0) result'i…2'=0;
tmp'0'=result'0'; tmp'1'=result'1'; tmp'2'=0;
if(strcmp(tmp;〃 圆〃)==0) {
if(result'2'==0) strcpy(result;〃零圆〃);
else {
tmp'0'=result'2'; tmp'1'=result'3'; tmp'2'=0;
return strcmp(tmp;〃零〃)==0 ? result+4 : result+2 ;
}
}
return result;
}
界面上的“Convert ”按钮消息处理函数如下:
void CRMBDlg::OnConvertButton()
{
if(UpdateData(TRUE))
{
m_szCha = RMB(m_double);
UpdateData(FALSE);
}
else
{
m_szCha = 〃〃;
UpdateData(FALSE);
}
}
运行界面如图 5…4 所示,详细的源代码设计可参考附带光盘。
·116 ·
…………………………………………………………Page 126……………………………………………………………
第 5 章 常用控件
图 5…4 阿拉伯数字与汉字数字之间的转换界面
技巧:改变控件的字体
控件也是窗口,可以调用 CWnd::SetFont 指定控件的新字体。该函数中使用一个 Cfont 指
针,以保证在控件撤消之前不能撤消字体对象。如下面的代码将下压按钮时的字体改为 8
号 Arial 字体。
private :
CFont m_font ;
// Set font in class implementation (。Cpp file )。 Note m_wndButton is a
//member variable added by ClassWizard。DDX routines hook the member
//variable to a dialog button contrlo。
BOOL CSampleDialog::OnInitDialog()
{
。。。
//Create an 8…point Arial font
m_font。CreateFont (MulDiv (8;pDC…》GetDeviceCaps(LOGPIXELSY);72);
;0;0;FW_NORMAL;0;0;0;ANSI_CHARSER;OUT_STROKE_PRECIS;CLIP_STROKE_PRECIS;
DRAFT_QUALITY;VARIABLE_PITCH|FF_SWISS;_T(〃Arial〃));
//Set font for push button 。
m_wndButton。SetFont (&m _font );
。。。
}
5。5 列表框(List Box )控件
5。5。1 列表框控件的使用
列表框也是一种传统控件,主要用于用户输入,它允许用户从所列出的表项中进行单项
或多项选择,被选择的项呈高亮