HSP用に自分なりにプログラムを書いてみたのですが、思い通りに動作しません。
(参考にしたプログラムはCreateWindowExで作成していた)
#include "user32.as" // マクロ #define FALSE 0 #define TRUE 1 #define SC_MINIMIZE 0xF020 #define SC_MAXIMIZE 0xF030 #define SC_RESTORE 0xF120 #define SC_SIZE 0xF000 #define GCL_HICON -14 #define GCL_HICONSM -34 #define GWL_STYLE -16 #define GWL_EXSTYLE -20 #define WS_EX_DLGMODALFRAME 0x00000001 #define WS_MAXIMIZEBOX 0x00010000 #define WS_MINIMIZEBOX 0x00020000 #define SWP_NOSIZE 0x00000001 #define SWP_NOMOVE 0x00000002 #define SWP_NOZORDER 0x00000004 #define SWP_FRAMECHANGED 0x00000020 // システムメニューの変更 GetSystemMenu hWnd, FALSE hSysMenu = stat RemoveMenu hSysMenu, SC_MINIMIZE, FALSE RemoveMenu hSysMenu, SC_MAXIMIZE, FALSE RemoveMenu hSysMenu, SC_RESTORE , FALSE RemoveMenu hSysMenu, SC_SIZE , FALSE // アイコンなし SetClassLong hWnd, GCL_HICON , 0 SetClassLong hWnd, GCL_HICONSM, 0 // アイコン、最大化/最小化ボックスの非表示 GetWindowLong hWnd, GWL_EXSTYLE SetWindowLong hWnd, GWL_EXSTYLE, stat | WS_EX_DLGMODALFRAME GetWindowLong hWnd, GWL_STYLE SetWindowLong hWnd, GWL_STYLE , stat & ((WS_MAXIMIZEBOX | WS_MINIMIZEBOX) ^ 0xFFFFFFFF) // ウィンドウを再描画 (SetWindowPosだと一部反映されない?) SetWindowPos hWnd, 0, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED
最後のSetWindowPosで、最大化最小化ボタンの表示はちゃんと反映される (消える) のですが、
左上のアイコンだけ反映されません (消えてくれません) 。
Windows 7 64bit のAeroでは、gsel 0,-1 : gsel 0,1 で反映されたのですが、ベーシックだとだめでした。
他にちゃんとした方法があるのでしょうか…?