c语言c++三目运算符的运用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

三目运算符的灵活运用

以前觉得条件运算符没什么乱用,所以就没有用它;结果昨天看到别人的代码运用了条件运算符省了一半的代码量,遂写了一个简单分析与大家分享

刚进入界面程序时界面,如图一:

OnInitDialog()函数中调用了该dlg类的成员函数ShowAddCtrl(BOOL bShow); 该成员函数的定义如下:

void DlgPDAUser::ShowAddCtrl(BOOL bShow)

{

GetDlgItem(IDC_STATIC_ADD)->ShowWindow(bShow?SW_SHOW:SW_HIDE); GetDlgItem(IDC_STATIC_1)->ShowWindow(bShow?SW_SHOW:SW_HIDE); GetDlgItem(IDC_STATIC_2)->ShowWindow(bShow?SW_SHOW:SW_HIDE); GetDlgItem(IDC_STATIC_3)->ShowWindow(bShow?SW_SHOW:SW_HIDE); GetDlgItem(IDC_E_NURSEID)->ShowWindow(bShow?SW_SHOW:SW_HIDE); GetDlgItem(IDC_E_NURSENAME)->ShowWindow(bShow?SW_SHOW:SW_HIDE); GetDlgItem(IDC_COMBO_NURSEPOWER)->ShowWindow(bShow?SW_SHOW:SW_HIDE); GetDlgItem(IDC_BUTTON_ADDOK)->ShowWindow(bShow?SW_SHOW:SW_HIDE); GetDlgItem(IDC_BUTTON_ADDCANCEL)->ShowWindow(bShow?SW_SHOW:SW_HIDE);

GetDlgItem(IDC_BUTTON_ADD)->EnableWindow(!bShow);

GetDlgItem(IDC_BUTTON_DEL)->EnableWindow(!bShow);

m_sCurUser = "";

}

BOOL CWnd::ShowWindow(int nCmdShow);这个函数设置窗口的可视状态

返回值,如果窗口原来可见,则返回非零值;如果CWnd原来是隐藏的,则返回0

参数: SW_SHOW 激活窗口并以其当前的大小和位置显示

SW_HIDE 隐藏窗口并将活动状态传递给其它窗口

BOOL CWnd::EnableWindow(BOOL bEnable=TRUE);

bEnable 指定是把窗口允许还是禁止.如果这个参数为TRUE,则窗口被允许.如果参数为FALSE,则窗口将被禁止

指明了调用EnableWindow成员函数之前窗口的状态.如果窗口原来是禁止的,则返回非零值;如果窗口原来是允许的,或者发生了错误,则返回0

而此时调用时传参为false,隐藏了图二有而图一无的几个控件,并不加灰添加和删除按钮

点击添加按钮后界面界面,如图二:

点击添加按钮时也调用了该dlg类的成员函数ShowAddCtrl(BOOL bShow);

不过此时传进参数为TRUE, 作用是显示了隐藏的按钮,加灰添加和删除按钮

点击取消按钮后界面后的界面,如图三:

点击取消按钮后调用该dlg类的成员函数ShowAddCtrl(BOOL bShow)

此时调用时传参为false,隐藏了图二有而图一无的几个控件,并不加灰添加和删除按钮;

自己写这个函数时会如下所写:

if(bShow==TRUE){

GetDlgItem(IDC_STATIC_ADD)->ShowWindow(SW_SHOW);

GetDlgItem(IDC_STATIC_1)->ShowWindow(SW_SHOW);

GetDlgItem(IDC_STATIC_2)->ShowWindow(SW_SHOW);

GetDlgItem(IDC_STATIC_3)->ShowWindow(SW_SHOW);

GetDlgItem(IDC_E_NURSEID)->ShowWindow(SW_SHOW);

GetDlgItem(IDC_E_NURSENAME)->ShowWindow(SW_SHOW);

GetDlgItem(IDC_COMBO_NURSEPOWER)->ShowWindow(SW_SHOW); GetDlgItem(IDC_BUTTON_ADDOK)->ShowWindow(SW_SHOW);

GetDlgItem(IDC_BUTTON_ADDCANCEL)->ShowWindow(SW_SHOW); }

if(bShow==FALSE){

GetDlgItem(IDC_STATIC_ADD)->ShowWindow(SW_HIDE);

GetDlgItem(IDC_STATIC_1)->ShowWindow(SW_HIDE);

GetDlgItem(IDC_STATIC_2)->ShowWindow(SW_HIDE);

GetDlgItem(IDC_STATIC_3)->ShowWindow(SW_HIDE);

GetDlgItem(IDC_E_NURSEID)->ShowWindow(SW_HIDE);

GetDlgItem(IDC_E_NURSENAME)->ShowWindow(SW_HIDE);

GetDlgItem(IDC_COMBO_NURSEPOWER)->ShowWindow(SW_HIDE); GetDlgItem(IDC_BUTTON_ADDOK)->ShowWindow(SW_HIDE);

GetDlgItem(IDC_BUTTON_ADDCANCEL)->ShowWindow(SW_HIDE);

}

GetDlgItem(IDC_BUTTON_ADD)->EnableWindow(!bShow);

GetDlgItem(IDC_BUTTON_DEL)->EnableWindow(!bShow);

作者灵活地运用了三目条件运算符,如下

GetDlgItem(IDC_STATIC_ADD)->ShowWindow(bShow?SW_SHOW:SW_HIDE); 节省了一半的代码量

相关文档
最新文档