用PASCAL写原生Windows程序的小问题. ( 积分: 30 )

  • 主题发起人 主题发起人 迷 路 人
  • 开始时间 开始时间

迷 路 人

Unregistered / Unconfirmed
GUEST, unregistred user!
WM_CHAR:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//按下字符键的消息处理<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dc:=GetDC(window);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TextOut(dc,20,20,PCHAR(wParam),2);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ReleaseDC(window,dc);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>window是窗口句柄,为什么我只要执行此段代码就出错,各位大大帮我看看.
 
刚刚又调试了下,发现问题应该出在PCHAR(wParam)<br>这里是想把键ASC码换成字符输出的,不晓得怎么转换了<br>还有个问题就是TextOut时候貌似引起WM_PAINT消息发出的?
 
我已经解决了前面的问题&nbsp;<br>谁要分的告诉我后面的是否强制刷新吧.
 
ReleaseDC(window,dc);这句明显是释放DC嘛,怎么会是强制刷新呢?
 
回复楼上的:&nbsp;是我没说清楚,我就是想知道beginpaint后有没有开始一个paint事件,窗口也会接收到wm_paint消息,现在我还在调试呢.&nbsp;直接给DRAW加上断点不好弄,我想加个Beep或者输出重画次数
 
在OnPaint里面插入了个MessageBeep(MB_OK);&nbsp;证明了TextOut没有引发On_Draw,可能TextOut只是重绘了一块字符占用的一个Rect吧
 
帖子快沉了,顶一下
 
后退
顶部