基本的なメモ帳プログラムを作成しています。ユーザーが閉じるをクリックすると、開いている現在のドキュメントを保存するかどうかをユーザーに尋ねます。タブ付きのインターフェイスを使用していて、ファイル名 (タブのテキスト) を取得しようとしているので、「保存しますか: untitled.txt」などのメッセージ ボックスがあります。ファイル名が分からなくて困っています。これは私が現在持っているものです:
case ID_FILE_CLOSE: // When the close button is clicked
{
HWND hEdit, hTabs;
hTabs = GetDlgItem( hwnd, IDC_MAIN_TAB );
int curTab = TabCtrl_GetCurSel( hTabs );
TCITEM curtitem;
TabCtrl_GetItem( hTabs, curTab, &curtitem );
// Check for file name
MessageBox( hwnd, curtitem.pszText, "Test", MB_OK );
}
break;
これは、Break、Continue、Ignore ボタンのあるポップアップ ボックスに表示されるエラーです。
notepadpremium.exe の 0x7597d298 で未処理の例外: 0xC0000005: アクセス違反の読み取り場所 0xcccccccc。
MS Visual C++ Express 2010 を使用しています。
拡張子も表示するファイル名のリストボックスもあり ( notepad++ document switcher のように)、メッセージを介して LB_GETITEMDATA を試しましたが、常に空白が返されました。LB_ADDSTRING を使用してリストボックスに追加したためだと思います。(リストボックスとタブは相互に接続されており、リストボックス内のファイルをクリックすると、対応するタブに変わります)。コードが正常に動作しないのはなぜですか?