duilib界面开发问题

神农藏百草 2018-06-29 09:03:52
我要做一个类似地铁上面站点信息的界面,然后下面做一个Combo控件,里面添加站点名称,在里面选择站点,然后通过一个Button按钮确定选择的站点,实现界面上相应的功能,如当前选择的站点为红色,前一个站点和后一个站点为黑色,前一个站点以前的都为灰色。
#pragma once

#include <UIlib.h>
#include <string.h>
using namespace DuiLib;

#ifdef _DEBUG
# ifdef _UNICODE
# pragma comment(lib, "DuiLib_ud.lib")
# else
# pragma comment(lib, "DuiLib_d.lib")
# endif
#else
# ifdef _UNICODE
# pragma comment(lib, "DuiLib_u.lib")
# else
# pragma comment(lib, "DuiLib.lib")
# endif
#endif
struct station{
char StationName[13];
COptionUI* pOption;
CButtonUI* pLabel;
};

class CDuiFrameWnd : public WindowImplBase
{
public:
virtual LPCTSTR GetWindowClassName() const { return _T("DUIMainFrame"); }
virtual CDuiString GetSkinFile() { return _T("Qtitle.xml"); }
virtual CDuiString GetSkinFolder() { return _T(""); }


void Init()
{
struct station cStation,cStation1,cStation2,cStation3,cStation4,cStation5,cStation6;

strcpy(cStation.StationName,"佛主岭");
strcpy(cStation1.StationName,"高新五路");
strcpy(cStation2.StationName,"高新四路");
strcpy(cStation3.StationName,"流芳园横街");
strcpy(cStation4.StationName,"工程大学");
strcpy(cStation5.StationName,"光谷大道");
strcpy(cStation6.StationName,"当代国际花园");
p_surebtn = static_cast<CButtonUI*>(m_pm.FindControl(_T("StationChoice")));
//这里获取到的指针可能是空的,可以断点看看
CComboUI* pAccountCombo = static_cast<CComboUI*>(m_pm.FindControl(_T("StationMess")));
CEditUI* pAccountEdit = static_cast<CEditUI*>(m_pm.FindControl(_T("accountedit")));
//指针判断,如果指针为空,直接操作会崩溃?所以都需要判断下,程序健壮性
if(pAccountCombo && pAccountEdit)pAccountEdit->SetText(pAccountCombo->GetText());
pAccountEdit->SetFocus();

}
void OnPrepare(){
CComboUI* pStationCombo = static_cast<CComboUI*>(m_pm.FindControl(_T("StationMess")));

}
//duilib窗口的初始化函数
virtual void InitWindow()
{
// SendMessage(WM_SYSCOMMAND, SC_MAXIMIZE, 0); //窗口的最大化
}
virtual void Notify(TNotifyUI& msg)
{

if(msg.sType == _T("click"))
{
if(msg.pSender->GetName() == _T("p_surebtn"))
{
COptionUI* pControl = static_cast<COptionUI*>(m_pm.FindControl(_T("StationChoice")));

}
}
else if(msg.sType == _T("itemselect"))
{
if(msg.pSender->GetName() == _T("StationMess"))
{
//代码有问题,m_pm未初始化???
CComboUI* pAccountCombo = static_cast<CComboUI*>(m_pm.FindControl(_T("StationMess")));
pAccountCombo->GetText();
}
}
}
//OnCreate这里有问题,还没有改,应该不需要用回调
LRESULT OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
LONG styleValue = ::GetWindowLong(*this, GWL_STYLE);
styleValue &= ~WS_CAPTION;
::SetWindowLong(*this, GWL_STYLE, styleValue | WS_CLIPSIBLINGS | WS_CLIPCHILDREN);

m_pm.Init(m_hWnd);
m_pm.AddPreMessageFilter(this);
CDialogBuilder builder;
CDialogBuilderCallbackEx cb;
CControlUI* pRoot = builder.Create(_T("Qtitle.xml"), (UINT)0, &cb, &m_pm);
ASSERT(pRoot && "Failed to parse XML");
m_pm.AttachDialog(pRoot);
m_pm.AddNotifier(this);

Init();
return 0;
}


public:
CPaintManagerUI m_pm;
private:
CButtonUI* p_surebtn;

};

int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{



CPaintManagerUI::SetInstance(hInstance);

CDuiFrameWnd duiFrame;
duiFrame.Create(NULL, _T("DUIWnd"), WS_VISIBLE | WS_POPUP, WS_EX_WINDOWEDGE);
duiFrame.CenterWindow();
duiFrame.ShowModal();

return 0;
}
求大神指点啊,新人,很懵逼,谢谢谢谢
...全文
330 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
神农藏百草 2018-07-02
  • 打赏
  • 举报
回复
引用 1 楼 zhao3132453 的回复:
不用声明m_pm吧,有个m_paintmaneger什么的能直接用
声明的m_pm就相当于m_paintmanager啊,而且你说的这个也是需要声明的啊
半雨微凉丶 2018-07-01
  • 打赏
  • 举报
回复
不用声明m_pm吧,有个m_paintmaneger什么的能直接用
国内首个开源的Directui界面库,开放,共享,惠众,共赢,遵循bsd协议,可以免费用于商业项目,目前支持Windows 32 、Window CE、Mobile等平台。 著名界面duilib的升级版uilib,加入了之前没有的常用控件,比如树.时间等控件,大大加快了界面开发速度.金山卫士.qq等最初都采用自该directui界面库。 Common ......\DLL_Debug_2008 ......\..............\UiLib_d.dll ......\..............\UiLib_d.exp ......\..............\UiLib_d.lib ......\..............\uilib_d.idb ......\..............\uilib_d.pdb ......\DLL_Debug_201X ......\..............\UiLib_d.dll ......\..............\UiLib_d.exp ......\..............\UiLib_d.ilk ......\..............\UiLib_d.lib ......\..............\UiLib_d.pdb ......\DLL_Release_2008 ......\................\UiLib.dll ......\................\UiLib.exp ......\................\UiLib.lib ......\DLL_Release_201X ......\................\UiLib.dll ......\................\UiLib.exp ......\................\UiLib.lib ......\................\UiLib.pdb ......\Include ......\.......\Control ......\.......\.......\UIActiveX.h ......\.......\.......\UIAnimation.h ......\.......\.......\UIButton.h ......\.......\.......\UICalendar.h ......\.......\.......\UICheckBox.h ......\.......\.......\UICombo.h ......\.......\.......\UIComboBox.h ......\.......\.......\UIEdit.h ......\.......\.......\UIFadeButton.h ......\.......\.......\UIGifAnim.h ......\.......\.......\UILabel.h ......\.......\.......\UIList.h ......\.......\.......\UIMenu.h ......\.......\.......\UIOption.h ......\.......\.......\UIProgress.h ......\.......\.......\UIRichEdit.h ......\.......\.......\UIScrollBar.h ......\.......\.......\UISlider.h ......\.......\.......\UIText.h ......\.......\.......\UITreeView.h ......\.......\.......\UIWebBrowser.h ......\.......\Core ......\.......\....\UIBase.h ......\.......\....\UIContainer.h ......\.......\....\UIControl.h ......\.......\....\UIDefine.h ......\.......\....\UIDlgBuilder.h ......\.......\....\UIDxAnimation.h ......\.......\....\UIManager.h ......\.......\....\UIMarkup.h ......\.......\....\UIRender.h ......\.......\Layout ......\.......\......\UIChildLayout.h ......\.......\......\UIFrameLayout.h ......\.......\......\UIHorizontalLayout.h ......\.......\......\UILinearLayout.h ......\.......\......\UITabLayout.h ......\.......\......\UITileLayout.h ......\.......\......\UIVerticalLayout.h ......\.......\StdAfx.h ......\.......\UIlib.h ......\.......\UiLib ......\.......\.....\Control ......\.......\.....\.......\Calendar.h ......\.......\.....\.......\GifAnimUI.h ......\.......\.....\.......\ListCommonDefine.h ......\.......\.....\.......\UIActiveX.h ......\.......\.....\.......\UIAnimation.h ......\.......\.....\.......\UIButton.h ......\.......\.....\.......\UICalendar.h ......\.......\.....\.......\UICheckBox.h ......\.......\.....\.......\UICombo.h ......\.......\.....\.......\UIComboBox.h ......\.......\.....\.......\UIDateTime.h ......\.......\.....\.......\UIEdit.h ......\.......\.....\.......\UIFadeButton.h ......\.......\.....\.......\UIGifAnim.h ......\.......\.....\.......\UILabel.h ......\.......\.....\.......\UIList.h ......\.......\.....\.......\UIMenu.h ......\.......\.....\.......\UIOption.h ......\.......\.....\.......\UIProgress.h ......\.......\.....\.......\UIRichEdit.h ......\.......\.....\.......\UIScrollBar.h ......\.......\.....\.......\UISlider.h ......\.......\.....\.......\UIText.h ......\.......\.....\.......\UITreeView.h ......\.......\.....\.......\UIWebBrowser.h ......\.......\.....\Core ......\.......\.....\....\UIBase.h ......\.......\.....\....\UIContainer.h ......\.......\.....\....\UIControl.h ......\.......\.....\....\UIDefine.h ......\.......\.....\....\UIDlgBuilder.h ......\.......\.....\....\UIDxAnimation.h ......\.......\.....\....\UIManager.h

3,055

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC HTML/XML
社区管理员
  • HTML/XML社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧