|
正在写一个SIP的程序。
遇到了这样一个困难。
首先在生成SIP软面板的时候,创建了一个窗口,得到句柄hwndsip。
我可以在这个面板上直接TextOut就输出了文本,直接InvalidateRect就可以将文本清除掉,在同一窗口下做这样的一系列操作都没什么问题。
可是我不想在软面板上面去TextOut,因为在键盘上做不美观。那么想在键盘上面做一动态的显示框,这个功能类似于输入法的拼音显示栏。
我的思路是程序初始化的时候获得了SIP面板的父窗口记录到一全局变量g_hwnd中。
那么,所有TextOut和InvalidateRect都在g_hwnd上进行。但是却发现,只可以在想要的位置上TextOut出文本,想要用InvalidateRect把文本刷掉却不成功,原因是InvalidateRect执行失败,返回的不是TRUE。
做了很多测试,不得其解。
我就是想实现一个类似输入法拼音栏的东西,不知道这样的思路行不行。
纳闷的就是既然能在其他窗口上TextOut 为什么不可以进行刷新。而自己的窗口就没问题。
另外我用程序测试,发现。
同样在XP下InvalidateRect(NULL,&rect,TRUE)可以刷新所有窗口,而在WINCE下就不行,执行这个函数不成功。
希望有类似经验的人帮忙分析下,指点一下,这个问题想了好久了。
|
|