1、添加所需控件,設置ID:labNum1,txtNum1、txtNum2、txtNum3、btnAdd,並將labNum1的屬性Notify->true(控件在被單擊或雙擊時可以發送消息)
2、雙擊labNum1控件,添加labNum1的響應函數,實現點擊文本,文本切換功能
void CMFCTestDlg::OnStnClickedlabnum1() { // TODO: 在此添加控件通知處理程序代碼 CString labNum1Str; GetDlgItem(labNum1)->GetWindowText(labNum1Str); if (labNum1Str==TEXT("Num1")) { GetDlgItem(labNum1)->SetWindowText(TEXT("數字1")); } else { GetDlgItem(labNum1)->SetWindowText(TEXT("Num1")); } }
3、實現加法計時器
①為控件分別添加變量,m_num1,m_num2,m_num3(若需要可以設定約束條件)
②為btnAdd添加響應函數
void CMFCTestDlg::OnBnClickedbtnadd() { // TODO: 在此添加控件通知處理程序代碼 UpdateData();//調用環境變量 m_num3=m_num1+m_num2; UpdateData(FALSE);//更新環境變量 }
4、窗體伸縮
①添加控件btnFlex,文本設為“打開>>”。添加控件picSplit,將visible設為false,sunken設為true(改變控件樣式為有凹陷邊沿)
②添加全局靜態變量rectBig,rectSmall,rectSplit
static CRect rectBig; static CRect rectSmall; static CRect rectSlit;
③為了讓窗體加載完以後就以收縮的方式出現,所以在窗體加載函數OnInitDialog()裡添加響應代碼
// TODO: 在此添加額外的初始化代碼 GetWindowRect(&rectBig); GetDlgItem(picSplit)->GetWindowRect(&rectSlit); rectSmall.top=rectBig.top; rectSmall.bottom=rectBig.bottom; rectSmall.left=rectBig.left; rectSmall.right=rectSlit.right; SetWindowPos(NULL,0,0,rectSmall.Width(),rectSmall.Height(),SWP_NOMOVE|SWP_NOZORDER);
④為btnSplit添加響應函數
void CMFCTestDlg::OnBnClickedbtnflex() { // TODO: 在此添加控件通知處理程序代碼 CString btnFlexStr; GetDlgItemText(btnFlex,btnFlexStr); if (btnFlexStr==TEXT("收縮<<")) { SetDlgItemText(btnFlex,TEXT("打開>>")); SetWindowPos(NULL,0,0,rectSmall.Width(),rectSmall.Height(),SWP_NOMOVE|SWP_NOZORDER); } else { SetDlgItemText(btnFlex,TEXT("收縮<<")); SetWindowPos(NULL,0,0,rectBig.Width(),rectBig.Height(),SWP_NOMOVE|SWP_NOZORDER); } }