请问如何使用DIALOGBAR?
我现在正在忙着做毕业设计,我想用一个DIALOGBAR输入线段两端点的坐标,然后把输入的值传到VIEW类里画出直线,我试了一下,当加入一个DIALOGBAR后,要为它创建一个新类,请问此新类的基类是哪个(是CDIALOG吗?)还有怎么样通过菜单把这个DIALOGBAR显示出来?
请教高手!!拜托了,马上就要交毕业设计了!
问题点数:0、回复次数:3Top
1 楼kongyunzhongque(云雀)回复于 2004-05-02 17:16:59 得分 0
在资源中添加dialogbar后,打开classwizard会弹出对话框让选择是否创建新类或选择已存在的类,选择已存在的类,然后选择CMainFrame。
取DialogBar的指针为
取得CMainFrame的指针一般可以为
CMainFrame *pMainFrame =(CMainFrame *)AfxGetMainWnd();
CDialogBar *pDialogBar =(CDialogBar *)pMainFrame->GetDescendantWindow(IDD_DIALOGBAR);
显示一般不是通过菜单来调用,dialogbar是嵌入在主框架中的,和toolbar有点像
显示dialogbar步骤:
在CMainFrame的.h文件中添加变量:
CDialogBar m_wndDlgBar;
在CMainFrame的.cpp文件中添加:
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
EnableDocking(CBRS_ALIGN_ANY);
//add this code
if (!m_wndDlgBar.Create(this, IDD_DIALOGBAR,
CBRS_TOP|CBRS_TOOLTIPS|CBRS_FLYBY, IDD_DIALOGBAR))
{
TRACE0("Failed to create DlgBar\n");
return -1; // fail to create
}
……
Top
2 楼longfeiguang(编程浪子)回复于 2004-05-02 17:54:57 得分 0
这样的话你应该作成分割窗形式,把DIALOGBAR建立成基于CFrom类,在CMain类中加入分割窗函数将视图分成两份,就可以了。如果你要做成弹出式,那DIALOGBAR就建立成基于CDialog类。
有问题可致电邮:longfeiguang@eyou.comTop
3 楼kongyunzhongque(云雀)回复于 2004-05-03 21:27:25 得分 0
我刚才试了一下,以文本方式打开project.rc文件,发现DialogBar的资源是英文格式的,于是把有关DialogBar的资源如
IDD_DIALOGBAR DIALOGEX 0, 0, 330, 15
STYLE WS_CHILD
FONT 10, "Times New Roman"
BEGIN
CONTROL "Progress1",IDC_PROGRESS1,"msctls_progress32",WS_BORDER,
98,0,75,15
EDITTEXT IDC_EDITPOSX,215,1,43,14,ES_AUTOHSCROLL
EDITTEXT IDC_EDITPOSY,273,1,37,14,ES_AUTOHSCROLL
LTEXT "位置",IDC_POSX,183,3,24,9,SS_NOPREFIX | WS_TABSTOP,
WS_EX_TRANSPARENT
END
拷贝到其他中文资源的Dialog资源下面,就ok了。
同时把剩余的下面这些删除。
/////////////////////////////////////////////////////////////////////////////
// English (U.S.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_DIALOGBAR DIALOGEX 0, 0, 330, 15
STYLE WS_CHILD
FONT 10, "Times New Roman"
BEGIN
CONTROL "Progress1",IDC_PROGRESS1,"msctls_progress32",WS_BORDER,
98,0,75,15
EDITTEXT IDC_EDITPOSX,215,1,43,14,ES_AUTOHSCROLL
EDITTEXT IDC_EDITPOSY,273,1,37,14,ES_AUTOHSCROLL
LTEXT "位置",IDC_POSX,183,3,24,9,SS_NOPREFIX | WS_TABSTOP,
WS_EX_TRANSPARENT
END
#endif // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////
Top




