看板 C_and_CPP 關於我們 聯絡資訊
允許的status 0x00 0x01 0x03 0x07 不允許的status (一定是由原先允許的status改變一個選項而來) 0x02 若是 0x00 -> 0x02 應自動變成 0x03 若是 0x03 -> 0x02 應自動變成 0x00 0x04 只可能0x00 -> 0x04,應自動變成 0x07 0x05 若是 0x01 -> 0x05,應自動變成 0x07 若是 0x07 -> 0x05,應自動變成 0x01 0x06 只可能 0x07 -> 0x06,應自動變成 0x00 因此當status為 0x02 或 0x05時,各有兩種可能 因此必須記錄先前的status,才能判斷應該進行的動作 ※ 引述《steven0315 (小志)》之銘言: : ( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) : ( 未必需要依照此格式,文章條理清楚即可 ) : 遇到的問題: (題意請描述清楚) : 我設計三個可以勾選的匡匡.. : ○ IDC_LOCK1 : ○ IDC_LOCK2 : ○ IDC_LOCK3 : 用16進制設為0x01 0x02 0x04分別為第1~3個 : 當我勾選第3個時→1.2都要enable : 當我勾選第2個時→1要enable : 當1.2.3都勾時,我把第1勾勾disable→1.2.3都要自己disable掉 : 當1.2都勾時,我把第1勾勾disable→1.2都要自己disable掉 : 當1.2.3都勾時,我把第2勾勾disable→2.3都要自己disable掉 : 當1被勾時,我勾3→1.2.3都要enable : 希望得到的正確結果: : 程式跑出來的錯誤結果: : 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) : 有問題的code: (請善用置底文標色功能) : if(lock_status & 0x02) : CheckDlgButton(hDlg, IDC_LOCK1,1); : if(lock_status & 0x04) : { : CheckDlgButton(hDlg, IDC_LOCK1,1); : CheckDlgButton(hDlg, IDC_LOCK2,1); : } : if(lock_status == 0x06) : { : CheckDlgButton(hDlg, IDC_LOCK1,0); : CheckDlgButton(hDlg, IDC_LOCK2,0); : CheckDlgButton(hDlg, IDC_LOCK3,0); : } : if(lock_status == 0x05) : { : CheckDlgButton(hDlg, IDC_LOCK2,0); : CheckDlgButton(hDlg, IDC_LOCK3,0); : } : 補充說明: : 簡單的說..就是勾後面的前面就要自動勾 : 前面被取消掉..後面也要自動取消 : 剛學win2000...還不是很熟~"~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.125.84