c语言c++三目运算符的运用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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); 节省了一半的代码量