MFC对话框中如何响应弹出式菜单事件 点击按钮 弹出菜单 菜单消息事件响应不了

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC对话框中如何响应弹出式菜单事件 点击按钮 弹出菜单 菜单消息事件响应不了相关的知识,希望对你有一定的参考价值。

MFC对话框中如何响应弹出式菜单事件

点击按钮 弹出菜单 菜单消息事件响应不了

手动在对话框类添加消息响应
afx_msg void OnAddfile();
ON_COMMAND(IDM_ADDFILE, OnAddfile)
void CMusicPlayerDlg::OnAddfile()

// TODO: Add your command handler code here
int i;
i=0;
AfxMessageBox("fss");


点击菜单没反应

在资源视图中添加菜单资源(设id 为IDR_MENU_MANAGE),建立你的弹出菜单并为其添加事件响应程序。
然后在需要弹出菜单的地方

CMenu menu,*pMenu;
menu.LoadMenu(IDR_MENU_MANAGE);
pMenu = menu.GetSubMenu(0);
pMenu->TrackPopupMenu(TPM_LEFTALIGN,pt.x,pt.y,this);

其中,pt是要弹出菜单的左上角坐标点追问

菜单能弹出来
CMenu addMenu;
CRect mRect;
GetDlgItem(IDC_BT_ADD)->GetWindowRect(&mRect);
addMenu.LoadMenu(IDR_MENU);
CMenu* subMenu=addMenu.GetSubMenu(0);
subMenu->TrackPopupMenu(TPM_RIGHTALIGN,(mRect.left+mRect.right)/2,mRect.bottom,GetDlgItem(IDC_BT_ADD));,
但弹出来后,点击菜单没反应

追答

资源视图中找到你的菜单IDR_MENU,打开,为每个菜单项添加事件响应程序。我的回答已经很明确

参考技术A 撒旦 参考技术B AfxMessageBox(_T("XXX!")); 参考技术C 你将IDM_ADDFILE这个ID与菜单上的ID一样吗??追问

追答

你这样试试,先随便在对话框上添加一个按钮,然后添加该按钮消息,消息里面就AfxMessageBox一下,运行看看有没有效果,然后将你那个菜单的ID改成这个按钮的ID,运行 试试菜单有没有效果

MFC点击按钮打开对话框选择文件夹(不是文件)

我想取得一个文件夹下所有的.mdb文件,取出一个我知道用CFileDialog。我的意思是弹出对话框后,我只能选择文件夹,然后得到在这个文件夹下面所有的.mdb的总路径放入一个数组中。求大神们帮忙

参考技术A 选择所选择的文件夹,获取文件夹的路径:
CString
m_FileDir;
BROWSEINFO
bi;
ZeroMemory(&bi,
sizeof(BROWSEINFO));
bi.hwndOwner
=
m_hWnd;
bi.ulFlags
=
BIF_RETURNONLYFSDIRS;
LPITEMIDLIST
pidl
=
SHBrowseForFolder(&bi);
BOOL
bRet
=
FALSE;
TCHAR
szFolder[MAX_PATH*2];
szFolder[0]
=
_T('');
if
(pidl)

if
(SHGetPathFromIDList(pidl,
szFolder))
bRet
=
TRUE;
IMalloc
*pMalloc
=
NULL;
if
(SUCCEEDED(SHGetMalloc(&pMalloc))
&&
pMalloc)

pMalloc->Free(pidl);
pMalloc->Release();


m_FileDir
=
szFolder;//选择的文件夹路径
查找所有MDB文件(记录数组自己写吧)
CFileFind
ff;
BOOL
res
=
ff.FindFile(m_FileDir+"*.mdb");
while(res)

res
=
ff.FindNextFile();
//不遍历子目录
if(!ff.IsDirectory()
&&
!ff.IsDots())

CString
strFile
=
ff.GetFileName();
…//
在这里写需要的代码


ff.Close();
//
不要忘记关闭

以上是关于MFC对话框中如何响应弹出式菜单事件 点击按钮 弹出菜单 菜单消息事件响应不了的主要内容,如果未能解决你的问题,请参考以下文章

MFC单击菜单项如何弹出对话框?

MFC对话框的按钮控件消息函数不起作用

请教实现android工程中点击菜单弹出一个对话框

MFC中实现点击菜单的选项弹出一个对话框

MFC钩子问题 我想点击一个按钮 弹出一个对话框 然后用钩子函数修改消息,点击之后弹出另一个dui对话框

mfc创建的单文档菜单栏按钮是灰的