当产生含$WS_POPUP子窗口 如何让主窗口不要变颜色??[已解决]
本帖最后由 kk_lee69 于 2020-8-6 19:51 编辑这个我是应用在LISTVIEW 原地编辑上 ,用这个原理 产生编辑框,再利用 上下左右 控制 可以 像 EXCEL 这样 左右移动编辑,但是 客户反应,由于 前一个编辑框消失 会变回比较黑的颜色,下一个编辑框产生,又会变成白色,这样闪烁不舒服,有办法让他不要闪烁,但是控件的产生原理不变,或者干脆自己自绘 第一个 主FROM 吗??
有無比較好的方式處理呢??
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Constants.au3>
#include <GuiImageList.au3>
#include <EditConstants.au3>
#include <FontConstants.au3> Local $listview, $button, $item1, $item2, $item3, $msg
$hFrom=GUICreate("列表視圖項目", 220, 250, 100, 200, -1, $WS_EX_ACCEPTFILES) $button = GUICtrlCreateButton(" 產生INPUT 控件 ", 10, 170, 200, 20) GUISetState() Do
$msg = GUIGetMsg()
Select
Case $msg = $button
;GUICtrlCreateInput("", 20, 200, 150)
$hEditForm = GUICreate("",150, 20 , 120, 250, $WS_POPUP, -1, $hFrom);創建一個子視窗用於裝載input控製項
GUISetFont(10)
$iEdit = GUICtrlCreateInput(" 輸入框", 0, 0, 150, 20 , BitOR($WS_CHILD, $WS_VISIBLE,$ES_LEFT,$ES_AUTOHSCROLL,$ES_READONLY)); $ES_AUTOHSCROLL 可以向後滾動 沒有則不行 ,$ES_RIGHT 右對齊
GUICtrlSetFont($iEdit, 10)
GUISetState(@SW_SHOW, $hEditForm)
EndSelect
Until $msg = $GUI_EVENT_CLOSE
不能解决。子窗体创建后,焦点更改到其上,父窗体失去焦点,会自动重绘。 自绘GUI???颜色随意定???
:face (14): 程序做到全程不激活且正常运行都没问题,别说中途切换焦点了…
注册窗口Activate相关消息,阻断消息传送即可,具体查阅windows消息
p.s, LZ所有帖子解决了都不结贴,非常不好,提醒多次了。 afan 发表于 2020-8-6 14:42
程序做到全程不激活且正常运行都没问题,别说中途切换焦点了…
注册窗口Activate相关消息,阻断消息传送即 ...
改進晚上修正相關 標題....... afan 发表于 2020-8-6 14:42
程序做到全程不激活且正常运行都没问题,别说中途切换焦点了…
注册窗口Activate相关消息,阻断消息传送即 ...
这个有示例吗,不懂怎么写... itsky2 发表于 2020-8-6 16:08
这个有示例吗,不懂怎么写...
找到解決辦法了.......註冊
GUIRegisterMsg( $WM_NCACTIVATE, "_WM_NCACTIVATE")
然後
Func _WM_NCACTIVATE( $hWnd, $iMsg, $wParam, $lParam)
If $hWnd = $WinMain Then
If Not $wParam Then Return 1
EndIf
Return $GUI_RUNDEFMSG
EndFunc
這樣就解決了 本帖最后由 itsky2 于 2020-8-6 20:38 编辑
kk_lee69 发表于 2020-8-6 19:53
找到解決辦法了.......註冊
GUIRegisterMsg( $WM_NCACTIVATE, "_WM_NCACTIVATE")
谢谢,学习了
If Not $wParam Then Return 1 这句什么意思?
itsky2 发表于 2020-8-6 20:36
谢谢,学习了
If Not $wParam Then Return 1 这句什么意思?
1 焦點
0 失去焦點 kk_lee69 发表于 2020-8-6 22:50
1 焦點
0 失去焦點
好的,我研究研究
页:
[1]