深度评测xcgui(二)
来源:互联网 发布:mac ntfs读写插件 免费 编辑:程序博客网 时间:2024/05/21 09:20
说起窗口这块内容,都是老掉牙的了,就那么几块,首先注册窗口类,然后创建窗口,之后是刷新并显示窗口,进入消息循环进行处理。不过这块有个疑问,其一就是sendmsg和postmsg的区别了
两者一个进队列,一个不进队列,换句话说就是一个异步投放,一个干等着处理结果。处于同一线程中,就是一个等待队列dispatchmsg处理,一个直接调用目标窗口的消息处理
。处于不同线程时,最好用postthreadmsg替换postmsg,而sendmsg发送消息到目标窗口所在线程的消息队列,而发送者线程等待,直到目标窗口处理完并返回为止。如果发送的消息码在WM_USER之下(非自定义消息)且消息参数中带有指针,那么PostMessage,SendNotifyMessage,SendMessageCallback这些异步消息发送函数将会调用失败。 最好不要用PostMessage发送带有指针参数的消息。
闲话少叙,还是看炫彩的表演吧。
首先对句柄的包装是比较全乎的
struct window_{object_ obj;int exType;HWND hwnd;HARRAY hArrayEle;HARRAY hArrayEleNC;
HELE hCapture;ele_ *pMoseTop;ele_* pFocus;ele_* pOldFocus;int userData;
int captionHeight;int borderLeft,borderRight,borderBottom,borderTop,minWidth,minHeight,roundSize;
SIZE iconSize;bool bTrackLeave;HELE hClose,hMax,hMin,hMenubar,hToolbar;
RECT rcOld;int xcStyle;bool bClickTimer,bMouseup,bMouseDown;
POINT ptDown,ptUp,ptDown2;scrollBar_* pbar;
int caretWidth,caretHeight;POINT ptCaret;HELE hCaretEle;bool bCaretShow,bCaretErase;
HBITMAP hCaretBitmap;COLORREF caretColor;HFONTX hFont;RECT rcDraw;
HDC hBkDc;DWORD captionColor;
COLORREF bkColor;HBITMAP hBitmap;SIZE sizeWnd;
draw_window_ drawWin;
int transparentFlag,alpha,color;
int chartletStyle,HIMAGE hImage_Client,himagtenc,himaecaption,hleft,hright,hbottom;
COLORREF stroke_clr1,stroke_clr2,inner_clr1,inner_clr2,HARRAY msg,ncmsg;
window_proc_ *pWndproc;HARRAY pgrids};
主框就是这么多内容了,其实还是规范窗口的布局和样式,另外对于回调的规范也比较可以。
xc在消息处理这块上是动态添加的,就是说如果一个要对框的某个消息进行处理的话,必须动态添加,此时就需要添加消息类型和消息的实体实现。而xc也对规范的
消息类型都进行了表述,意思就是可以提供个人自定义的消息处理添加到xc中。
相对来说,xc的处理还是比较合理的,不过就是有点松散,就是相当于给了一块动态画板,自己规划哪一块,行了,以后我在详聊窗口
- 深度评测xcgui(二)
- 深度评测xcgui
- 深度评测xcgui(一)
- 酷睿2势不可挡 Merom处理器深度评测
- callfreee VoIP电话适配器深度评测
- Testin发布手机QQ4.1深度评测
- NVIDIA新旗舰GeForce GTX 780深度评测
- 玩转mt2502之LinkitOne深度评测
- 浏览器性能评测报告(二):评测工具
- AHOI智能评测系统开发(二)
- 在线云评测系统日志二
- NOD 32深度评测:查杀超强悍 资源占极少
- 深度评测PDF转换成Word转换器哪个好
- HashMap深度解析(二)
- 深度围观block:二
- HashMap深度解析(二)
- HashMap深度解析(二)
- HashMap深度解析(二)
- user is not in sodoers 解决方案
- Cannot reload AVD list: cvc-enumeration-valid**
- 错误:count was not declared in this scope
- js为object动态添加属性
- java多线程之Exchanger
- 深度评测xcgui(二)
- yarn中rescource manager,node manager,application master,container,executor,task的关系
- POST传值遇到的坑
- mysqli_fetch_all函数
- vi/vim基本使用方法
- 在Hive 中如何使用符合数据结构 maps,array,structs
- HDU 2276 Kiki & Little Kiki 2 (矩阵快速幂)
- 心情
- 大型网站之网站静态化(反向代理)