これは私の最初の投稿です。コード ブロック 12.11 で win32 GUI をプログラムする方法を学ぼうとしていますが、ここに問題があります。
ダイアログ ボックス ウィンドウ (IDC_LISTP > 個人用プロジェクト ノート) と (IDC_LISTS > 共有プロジェクト ノート) に 2 つのリスト ボックスがあります。
(個人プロジェクトのメモ) は、作成されたダイアログに自動入力されます。また、(共有プロジェクトのメモ) を正しいフォルダーから入力することもできます (共有の更新)。
(共有の更新)をクリックした後にボタン(個人の更新)をクリックすると問題が発生し、(共有プロジェクトのメモ)の内容が(個人のプロジェクトのメモ)リストボックスにロードされます。クリアボタンも使用した後でも、これはまだです(個人の更新)ボタンをクリックすると、(個人のプロジェクトのメモ)が読み込まれます。
どうすればこれを止めることができますか???
誰かこの問題を解決するのを手伝ってくれませんか? 何日も頭を壁にぶつけていませんか?
これは私が現在実験しているコードです。コードのほとんどは私の GUI に合うように変換した例からのものであるため、乱雑なコードを許してください。
追加の投稿 http://forums.codeguru.com/showthread.php?540733-win32-listbox-not-populating-rightも写真付き
BOOL CALLBACK DlgProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam){
switch(Message){
case WM_INITDIALOG:
CheckRadioButton(HWND (hwnd),IDRADIO, IDRADIO2, IDRADIO);
{
DlgDirList(HWND (ID_PROJECT_PROJECT_NOTES), pbuffer, IDC_LISTP, 0, DDL_EXCLUSIVE);
HWND hListBox = GetDlgItem(hwnd, IDC_LISTP);
SendMessage(hListBox, LB_DIR, 0, (LPARAM)("*.txt*"));
}
break;
case WM_COMMAND:
switch(LOWORD(wParam)){
case ID_UPDATEP:{
SendDlgItemMessage(HWND(hwnd), IDC_LISTP, LB_RESETCONTENT, 0, 0);
DlgDirList(HWND (ID_PROJECT_PROJECT_NOTES), pbuffer, IDC_LISTP, 0, DDL_EXCLUSIVE);
HWND hListBox = GetDlgItem(hwnd, IDC_LISTP);
SendMessage(hListBox, LB_DIR, 0, (LPARAM)("*.txt"));
}
break;
case ID_UPDATES:{
SendDlgItemMessage(HWND(hwnd), IDC_LISTS, LB_RESETCONTENT, 0, 0);
DlgDirList(HWND (ID_PROJECT_PROJECT_NOTES), sbuffer, IDC_LISTS, 0, DDL_EXCLUSIVE);
HWND hList = GetDlgItem(hwnd, IDC_LISTS);
SendMessage(hList, LB_DIR, 0, (LPARAM)("*.txt"));
}
break;
case IDCLEAR:
SendDlgItemMessage(HWND(hwnd), IDC_LISTP, LB_RESETCONTENT, 0, 0);
SendDlgItemMessage(HWND(hwnd), IDC_LISTS, LB_RESETCONTENT, 0, 0);
break;
case IDCREATE:{
DialogBox(GetModuleHandle(NULL), MAKEINTRESOURCE(IDPAD), NULL, DlgProc);
}
break;
case IDOK:
EndDialog(hwnd, IDOK);
break;
case IDCANCEL:
EndDialog(hwnd, IDCANCEL);
break;
}
break;
case WM_CLOSE:
EndDialog(hwnd, 0);
break;
default:
return FALSE;
}
return TRUE;
}