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");
点击菜单没反应
然后在需要弹出菜单的地方
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对话框中如何响应弹出式菜单事件 点击按钮 弹出菜单 菜单消息事件响应不了的主要内容,如果未能解决你的问题,请参考以下文章