zoukankan      html  css  js  c++  java
  • 基于DirectUI搭建Windows窗体程序

    使用DirectUI需要directuiCom.dll,包含IDirectUI.h和DirectuiDef.h。在你的应用程序中初始化CLSID_DirectUI,并获取IDirectUI(IID_IDirectUI)接口。具体初始化方式可以参考官网示例。DirectUI的界面定义分为xml + script。xml定义界面的布局、样式、资源。script文件定义相关消息的映射处理,并通过Window.OnSkinCmd转发相应的消息到指定的函数。假设这里你使用的技术是ATL,DirectUI定义了WM_SKIN_COMMAND消息,你可以添加对应的MESSAGE_HANDLER:

    MESSAGE_HANDLER(WM_SKIN_COMMAND, OnSkinCommand)

    在OnSkinCommand的时候转发由script中通过OnSkinCmd发送的消息:

    1 LRESULT OnSkinCommand(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) {
    2   SendMessage(WM_COMMAND, wParam, lParam);
    3 
    4   return 0;
    5 }

    假设在你对应的xml中有一个button按钮,在script中添加了对应的处理函数:

    1 function btnClick::onClick(cx, cy) {
    2   Window.OnSkinCmd(100, 0);
    3 }

    在你的任意头文件中定义btnClick的标识,比如:

    #define IDC_BTNCLICK 100

    在消息映射中添加一个COMMAND_ID_HANDLER:

    COMMAND_ID_HANDLER(IDC_BTNCLICK, OnBtnClickClick)

    这样你原来基于ATL编写的消息处理器依然可以被继续使用,而UI的技术就可以尝试使用DirectUI。

  • 相关阅读:
    第三次冲刺
    第二次冲刺
    第一次冲刺
    Beta版本的发布
    第七次冲刺
    SpringMVC+Spring+mybatis 项目实践
    JSP显示新闻
    一个简单的静态邮箱登录界面
    Java Web 基础
    总结
  • 原文地址:https://www.cnblogs.com/junchu25/p/2633468.html
Copyright © 2011-2022 走看看