WEB开发网
开发学院软件开发VC VC模仿超炫QQ界面的实现 阅读

VC模仿超炫QQ界面的实现

 2008-09-01 19:25:44 来源:WEB开发网   
核心提示: 顺便说一下的是,官方声称,调用完SkinLoad()载入后,VC模仿超炫QQ界面的实现(4),在退出程序前并不需要调用任何卸载函数,换肤引擎将自动实现库的销毁拆装等操作,它们拥有不一样的外观,按理也应该绑定指定需要的外观皮肤资源,除非你程序运行中途意愿性的想去掉皮肤外观, 现在已经完成QQ

顺便说一下的是,官方声称,调用完SkinLoad()载入后,在退出程序前并不需要调用任何卸载函数,换肤引擎将自动实现库的销毁拆装等操作,除非你程序运行中途意愿性的想去掉皮肤外观。

现在已经完成QQ主界面的外观实现与美化了,接下来我们通过VC向导添加一个对话框资源并添加相应的类,命名CtalkDlg类,其功能是聊天对话框的对话窗口,也就是当我们双击用户列表的其中一个用户后弹出的聊天窗口.当我们运行的时候发现,它的窗口背景外观除了大小外,其它跟主界面是完全一样的, 怎么办呢?没有关系,因为在皮肤文件里面已经编辑和准备好另一外观的窗口皮肤资源,我们只需要将这个聊天对话框创建后跟这个皮肤资源绑定则可,重载这个CtalkDlg类的初始化函数,并添加绑定代码,具体实现如下:

BOOL CTalkDlg::OnInitDialog()
{
  CDialog::OnInitDialog();
  
  //将该对话框绑定某资源ID,让其绘制根据该资源定义来实现
  //bind with the predefine res
  BindRes2CtrlbyHWND(103,m_hWnd);
  ......
}
  上述代码功能是将预先在beautyQQ.bak皮肤里面定义好的对话框图像资源与对话框绑定,资源内部ID号为103(注意,该资源编号是编辑皮肤的时候就是由用户定义的,一般从101开始)。从上面的BindRes2CtrlbyHWND()函数名称以及参数可知道,功能是将窗口句柄为m_hWnd的窗口外观与资源Id为103的皮肤资源绑定.于是,这就实现了不同窗口可以显示不同的背景皮肤了。

跟这个功能相类似的是,我们聊天对话框有好几个按钮,它们拥有不一样的外观,按理也应该绑定指定需要的外观皮肤资源,于是,我们可以采用以下函数接口实现:BindRes2CtrlbyID(106,IDC_BUTTON_TALK_SERACH);

上一页  1 2 3 4 5  下一页

Tags:VC 模仿 QQ

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接