wtl,xml学习ing

原文网址:http://hi.baidu.com/jakisyhzurbvxzq/item/ade6d1f1cc6027a530c19904

1.ccombobox的调用

  首先,如果只是简单的重载,没有多大的用处(前提是xml和wtl),不能很好的处理外观。即使响应了drawitem也没有什么办法,因为如果你是在主函数中申请ccombobox      c;然后用c去调用,wm_drawitem不会响应到重载的函数里去,它只会套你调用的那个cpp里就终止了。所以最好的办法,就是要重写ccombobox,写的内容可以参照原先的写法,分为popup(弹出下拉部分)和上面的编辑框(edit)然后就是为了美化界面描边,也就是drawborde。

 其次,如果你是直接调用系统的ccombobox一定要在dwstyle里加上CBS__DROPDOWN(之类的),而你自己编写的则要看你调用的dwstyle了。不过一般CHILD呀visible都可以合适的选上。

 

2.cedit的调用

这该是最简单了吧,要注意的是一定要加。。。border,不然不显示的哟

3.dlgfile的使用

这个控件的使用非常的方便,就是你将一个文件里面的dlg里的内容,单独放在另一个xml里,注意这里面没有,foot只layer,body,header有简单的你要表示的内容。然后在资源文件里给他一个ID,在需要调用的文件里直接些一般就可以显示出来,如果没有显示出来说明,第一:你的ID放错了(不过可能性 很小) 第二:你的库没有升级,还是老版的,它不支持dlgfile这样“先进的符号”。

 

但是如果是老版的,又想解决多次在不同的地方调用同一个dlg的内容怎么办呢,我想可以这样:

第一步:将需要多次调用的dlg内容,连dlg一起放到一个新的xml里,但是这一次要有layer,body,并且要适当的设置width,height.

....

记住哟,child非常的重要,这表示他可以嵌入的其它的xml里去

第二步:在需要调用的地方写一个

第三步:新建一个test.h和test.cpp,文件的内容很简单,test.h只需要有staxf.h头文件,然后定义个类,类继承ckuiddialogimpl并写上<类名称>  example:class Csearch: public CKuiDialogImpl

然后由构造,析构, OnInitDialog()初始函数。这是函数调用动作的路口

LRESULT OnInitDialog( HWND hDlg, LPARAM lParam );//函数体内,写你要进行的操作

 

其它的都不用写实体了,最主要的是,构造函数时要加载你的xml

Csearch::Csearch( ):CKuiDialogImpl( "IDR_DLG_SEARCH" )//其中IDR_DLG_SEARCH就是你xml的ID

还有就是void OnDestroy(){;}

第四步:在需要调用的.h里声明刚刚定义类的的一变量,注意要是指针(例如*p),然后在cpp文件里,

(p=new 类());

p->create(GetviewhWnd(),"",Null);

p->SetDlgCtrlID("123");

p->showwindow(SW_SHOW);

 

这样就可以显示了

 

4.弹出对话框

这个就先做出和上面的差不多,只是这个xml是一个完整体,且不需要child,尝试写出弹出的一个界面,然后再xml里面进行丰富。最简单的方法是重载msgbox,然后和你写的xml进行绑定,界面在xml里进行完善。

 

 

5.listview 调用

系统的不好看,还是要重写

 

6.同一个地方显示不同的界面,可以用show来决定,当前显示pane

 

 

7.消息的显示意义

 

KUI_NOTIFY_MAP(IDC_RICHVIEW_WIN)
KUI_NOTIFY_COMMAND(OnBkCommand)//一般用户嵌套的窗口函数响应,和onsyscommand不能同时使用
KUI_NOTIFY_ID_COMMAND(T_Search_date,T_search_dates)//ID绑定响应的动作
KUI_NOTIFY_MAP_END()


  BEGIN_MSG_MAP_EX(Csearch)
  MSG_KUI_NOTIFY(IDC_RICHVIEW_WIN)
  CHAIN_MSG_MAP(CKuiDialogImpl)

  MSG_WM_INITDIALOG(OnInitDialog)//初始化
  MSG_WM_DESTROY(OnDestroy)//注销
  REFLECT_NOTIFICATIONS_EX()
  END_MSG_MAP()

 

要用c++些程序,它是绿色的,可以免费升级,而不用MFC是因为很多系统的空间大多数不好看,所以选择可以自由封装的wtl。

 

你可能感兴趣的:(wtl,xml学习ing)