win消息中的疑难杂症!!

[复制链接]
 楼主| yujun0834 发表于 2008-1-28 13:03 | 显示全部楼层 |阅读模式
win, TE, LPC, pc, RAM
各位同仁:&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;在看wince程序设计一书时,碰到如下问题<br />这函数是处理WM_CREATE消息的,如下:<br />LRESULT&nbsp;DoCreateFrame&nbsp;(HWND&nbsp;hWnd,&nbsp;UINT&nbsp;wMsg,&nbsp;WPARAM&nbsp;wParam,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LPARAM&nbsp;lParam)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;HWND&nbsp;hwndCB,&nbsp;hwndClient;<br />&nbsp;&nbsp;&nbsp;&nbsp;INT&nbsp;sHeight;<br />&nbsp;&nbsp;&nbsp;&nbsp;LPCREATESTRUCT&nbsp;lpcs;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Convert&nbsp;lParam&nbsp;into&nbsp;pointer&nbsp;to&nbsp;create&nbsp;structure.<br />&nbsp;&nbsp;&nbsp;&nbsp;lpcs&nbsp;=&nbsp;(LPCREATESTRUCT)&nbsp;lParam;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Create&nbsp;a&nbsp;command&nbsp;bar.<br />&nbsp;&nbsp;&nbsp;&nbsp;hwndCB&nbsp;=&nbsp;CommandBar_Create&nbsp;(hInst,&nbsp;hWnd,&nbsp;IDC_CMDBAR);<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Add&nbsp;exit&nbsp;button&nbsp;to&nbsp;command&nbsp;bar.<br />&nbsp;&nbsp;&nbsp;&nbsp;CommandBar_AddAdornments&nbsp;(hwndCB,&nbsp;0,&nbsp;0);<br />&nbsp;&nbsp;&nbsp;&nbsp;sHeight&nbsp;=&nbsp;CommandBar_Height&nbsp;(GetDlgItem&nbsp;(hWnd,&nbsp;IDC_CMDBAR));<br />&nbsp;&nbsp;&nbsp;&nbsp;//<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Create&nbsp;client&nbsp;window.&nbsp;&nbsp;Size&nbsp;it&nbsp;so&nbsp;that&nbsp;it&nbsp;fits&nbsp;under<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;the&nbsp;command&nbsp;bar&nbsp;and&nbsp;fills&nbsp;the&nbsp;remaining&nbsp;client&nbsp;area.<br />&nbsp;&nbsp;&nbsp;&nbsp;//<br />&nbsp;&nbsp;&nbsp;&nbsp;hwndClient&nbsp;=&nbsp;CreateWindow&nbsp;(CLIENTWINDOW,&nbsp;TEXT&nbsp;(&quot;&quot;),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WS_VISIBLE&nbsp;|&nbsp;WS_CHILD&nbsp;|&nbsp;WS_VSCROLL,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lpcs-&gtx,&nbsp;lpcs-&gty&nbsp;+&nbsp;sHeight,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lpcs-&gtcx,&nbsp;lpcs-&gtcy&nbsp;-&nbsp;sHeight,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hWnd,&nbsp;(HMENU)IDC_CLIENT,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lpcs-&gthInstance,&nbsp;NULL);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Destroy&nbsp;frame&nbsp;if&nbsp;client&nbsp;window&nbsp;not&nbsp;created.<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!IsWindow&nbsp;(hwndClient))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DestroyWindow&nbsp;(hWnd);<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;<br />}<br />其中参数中的&nbsp;LPARAM&nbsp;lParam&nbsp;包含了一些什么信息?lpcs&nbsp;=&nbsp;(LPCREATESTRUCT)&nbsp;lParam;
high 发表于 2008-1-28 13:55 | 显示全部楼层

我想你应该搜下上下文

一般消息如果不足够表达信息时候,会使用参数.你得看发消息者使用了什么数据结构.<br /><br />LPARAM本身没什么特殊的,不过是一个<br />typedef&nbsp;long&nbsp;LPARAM之类的.<br />但如果把它当一个数据结构指针时候,信息量就可以很大了.
computer00 发表于 2008-3-2 17:19 | 显示全部楼层

关键在于LPCREATESTRUCT这个结构体,你要查下MSDN,

看看LPCREATESTRUCT这种类型的结构体都有些啥内容。这里传递进来的是这样一个结构体的指针。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

47

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部