我正在创建一个基本的记事本程序,当用户单击关闭时,我希望它询问用户是否要保存当前打开的文档。我正在使用选项卡式界面,并尝试检索文件名(选项卡上的文本),所以我有一个消息框,上面写着“您要保存: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;
这是我在带有中断、继续、忽略按钮的弹出框中不断出现的错误:
notepadpremium.exe 中 0x7597d298 处的未处理异常:0xC0000005:访问冲突读取位置 0xcccccccc。
我正在使用 MS Visual C++ Express 2010。
我还有一个列表框,其中的文件名也显示扩展名(几乎就像 notepad++ 文档切换器),并通过消息尝试了 LB_GETITEMDATA,但始终返回空白。我认为那是因为我使用 LB_ADDSTRING 将其添加到列表框中。(列表框和选项卡是相互关联的,当您单击列表框中的文件时,它会变为相应的选项卡)。为什么我的代码没有按应有的方式工作?