求助:怎样对CDialogBar中的控件 *** 作

求助:怎样对CDialogBar中的控件 *** 作,第1张

1、在Fragment中viewgetActivity()findViewById(Ridxx);2、其中getActivity可以获取到该Fragment引用的Activity,3、之后通过findViewById获取到其他与该Activity相关联的Fragment中的控件引用。

1·(二者选一)或者创建单文档分隔视图的工程,注意View类基类为CListView/CTreeView或者CFormView

或者,单视图CListView,并使用CDialogBar(或者CDockablePane)做左侧窗口,这个更接近原版的样子。

2·熟悉并使用CFileFind,并显示列表

3·使用CFile或者其它API函数获取文件信息并显示(API效率更高一些,CFile做这个不是专用)

这时候样子就比较像了,剩下的就是功能,这个比较多,简单列举:

ShellExecute 双击打开或者执行文件,CopyFile/DeleteFile

如果需要实现更接近的功能,自己熟悉一下shell编程吧,呵呵

如果是标准MFC框架,主框架窗口会有一个CDialogBar的成员变量,

m_wndDlgBarIsVisible();就是获取它的状态。

建立菜单后,对菜单项响应UPDATE_COMMAND_UI消息,响应函数中:

pCmdUI->Enable(m_wndDlgBarIsVisible());//这样就让菜单/按钮状态和DIALOGBAR关联了。

然后在菜单点击响应函数中,通过状态分别m_wndDlgBarShowWindow(SW_SHOW/SW_HIDE)就可以了。

我也是菜鸟一个啊,不过像这种问题我还是可以帮你解决的。

首先你所说的dlgbar应该是个从CDialogBar派生出来的类的对象吧?(呵呵,好白痴的问题……)(要注意的是,这个派生类要自己手工添加,不能用ClassWizard)

嗯,我就从头到尾说一遍,不要嫌麻烦啊。

首先,设计好你的对话框模版,在CMainFrame的的头文件里添加一个CDialogBar对象,然后到CMainFrame的OnCreate函数那里添加创建Dlgbar对象的代码:

if (!m_wndDlgBarCreate(this, IDD_DLGBAR, WS_CHILD | WS_VISIBLE | CBRS_TOP

| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC,AFX_IDW_DIALOGBAR))

{

TRACE0("Failed to create Dialogbar\n");

return -1; // fail to create

}(注:m_wndDlgBar就是你的Dlgbar对象,第二个参数是你的Dlgbar的ID,还有一点要注意的是,对话框模版的属性中选择“样式”,选择“下层”,边框选择“无”,其余属性全部不要)

然后,编译一下,就发现多了一个类型工具条的东西了。

如果你想设置Edit控件的数据,很简单,手工添加命令更新响应就可以了。到View的头文件中声明命令响应函数,然后到View的实现文件中添加消息映射,即:ON_WM_UPDATE_COMMAND_UI(EditID,消息映射函数名)。然后在那个函数中调用pCmdUI->SetText(),就搞定了。

一般说来,加了个命令更新消息后就可以更新Edit的内容了。

哦,对了,还是给出一个消息响应函数的参数一定要写成像下面的那样:void CTypingView::OnUpdateScorePersonal(CCmdUI pCmdUI) 。要是有什么问题的话我们还可以互相讨论一下哦,QQ703448065

1·(二者选一)或者创建单文档分隔视图的工程,注意View类基类为CListView/CTreeView或者CFormView

或者,单视图CListView,并使用CDialogBar(或者CDockablePane)做左侧窗口,这个更接近原版的样子。

2·熟悉并使用CFileFind,并显示列表

3·使用CFile或者其它API函数获取文件信息并显示(API效率更高一些,CFile做这个不是专用)

这时候样子就比较像了,剩下的就是功能,这个比较多,简单列举:

ShellExecute 双击打开或者执行文件,CopyFile/DeleteFile

如果需要实现更接近的功能,自己熟悉一下shell编程吧

另外,VC制作文件管理器的例子网上很多,可以搜来做参考。

可以使用鼠标右键(WM_RBUTTONDOWN)d出一个菜单,来响应浮动或是停靠消息切换;

鼠标左键(WM_LBUTTONDOWN)进行拖动;

ON_NOTIFY(NM_RCLICK, IDC_CONTROL_LIST, OnNMRclickUserList)

void OnNMRclickUserList(NMHDR pNMHDR, LRESULT pResult)

{

NMITEMACTIVATE pListNotify=(NMITEMACTIVATE )pNMHDR;

if (pListNotify->iItem!=-1)

{

//获取位置

CPoint MousePoint;

GetCursorPos(&MousePoint);

//构造菜单

CMenu CtrlMenu;

CtrlMenuCreatePopupMenu();

//功能菜单

CtrlMenuAppendMenu(MF_ENABLED,IDM_MENU_MESSAGE1,TEXT("浮动"));

CtrlMenuAppendMenu(MF_SEPARATOR);

CtrlMenuAppendMenu(MF_ENABLED,IDM_MENU_MESSAGE2,TEXT("停靠"));

//显示菜单

CtrlMenuTrackPopupMenu(TPM_LEFTALIGN|TPM_LEFTBUTTON,MousePointx,MousePointy,this);

}

return;

}

可以使用鼠标右键(WM_RBUTTONDOWN)d出一个菜单,来响应浮动或是停靠消息切换;

鼠标左键(WM_LBUTTONDOWN)进行拖动;

ON_NOTIFY(NM_RCLICK, IDC_CONTROL_LIST, OnNMRclickUserList)

void OnNMRclickUserList(NMHDR pNMHDR, LRESULT pResult)

{

NMITEMACTIVATE pListNotify=(NMITEMACTIVATE )pNMHDR;

if (pListNotify->iItem!=-1)

{

//获取位置

CPoint MousePoint;

GetCursorPos(&MousePoint);

//构造菜单

CMenu CtrlMenu;

CtrlMenuCreatePopupMenu();

//功能菜单

CtrlMenuAppendMenu(MF_ENABLED,IDM_MENU_MESSAGE1,TEXT("浮动"));

CtrlMenuAppendMenu(MF_SEPARATOR);

CtrlMenuAppendMenu(MF_ENABLED,IDM_MENU_MESSAGE2,TEXT("停靠"));

//显示菜单

CtrlMenuTrackPopupMenu(TPM_LEFTALIGN|TPM_LEFTBUTTON,MousePointx,MousePointy,this);

}

return;

}

以上就是关于求助:怎样对CDialogBar中的控件 *** 作全部的内容,包括:求助:怎样对CDialogBar中的控件 *** 作、vc++基于单文档的资源管理器如何制作求制作过程、已经在视图区嵌入了DialogBar的对话框,如何从其他地方调用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9404683.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存