tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^11: メモ帳のカーソル位置
投稿日: 2012/07/09(Mon) 19:20
投稿者魔界の仮面弁士
> FindWindowでハンドルを取得できずEnumWindowで取得出来ることなんてあるのでしょうか?
EnumWindows は、トップレベルウィンドウの全列挙ですが、
FindWindow は、クラス名/ウィンドウ名による検索です。

通常はどちらでも取得できるはずですが、たとえば、Unicodeテキストなウィンドウ名に対して
うっかり ANSI バージョンである FindWindow(Ex)A を呼び出していたり、あるいは、
半角/全角、マイナスとハイフン、空白文字の有無などの指定ミスがあったとすれば、
FindWindow(Ex) での取りこぼしはありえるかと思います。


> EnumWindowでハンドルを取得しそれをSetWindowPosで動かしたら出来そうなサイトが
> 見つかったのでそちらも試してみます。
> http://monta.moe.in/wp/2010/03-21/13-20_721
移動自体は、MoveWindow でも SetWindow でも問題ないはずです。

Private Declare Function MoveWindow Lib "user32" _
( _
    ByVal hWnd As OLE_HANDLE, _
    ByVal X As Long, _
    ByVal Y As Long, _
    ByVal nWidth As Long, _
    ByVal nHeight As Long, _
    ByVal bRepaint As Long _
) As Long


Private Enum SWPIA
    HWND_NOTOPMOST = -2 '自身が最前面なら、どの最前面ウィンドウよりも後ろに移動する
    HWND_TOPMOST   = -1 '最前面にないどのウィンドウよりも手前に移動する
    HWND_TOP       = 0  '先頭に移動する
    HWND_BOTTOM    = 1  '一番後ろに移動する
End Enum
Private Enum SWP
    SWP_NOSIZE         = &H1    'ウィンドウのサイズを変更しない(cx と cy を無視する)
    SWP_NOMOVE         = &H2    'ウィンドウの位置を変更しない(X と Y を無視する)
    SWP_NOZORDER       = &H4    'Zオーダーを変更しない(hWndInsertAfter を無視する)
    SWP_NOREDRAW       = &H8    '再描画しない
    SWP_NOACTIVATE     = &H10   'ウィンドウをアクティブ化しない
    SWP_FRAMECHANGED   = &H20   '新しい枠線スタイルの設定を適用する
    SWP_DRAWFRAME      = SWP_FRAMECHANGED   '枠線を描画する
    SWP_SHOWWINDOW     = &H40   'ウィンドウを表示する
    SWP_HIDEWINDOW     = &H80   'ウィンドウを非表示にする
    SWP_NOCOPYBITS     = &H100  'クライアント領域のすべての内容を破棄する
    SWP_NOOWNERZORDER  = &H200  'オーナーウィンドウのZオーダーを変更しない
    SWP_NOOWNERZORDER  = SWP_NOREPOSITION
    SWP_NOSENDCHANGING = &H400  'WM_WINDOWPOSCHANGING メッセージを抑制する
    SWP_DEFERERASE     = &H2000 'WM_SYNCPAINT メッセージを抑制する
    SWP_ASYNCWINDOWPOS = &H4000 'UIスレッドへ要求する
End Enum
Private Declare Function SetWindowPos Lib "user32" _
( _
    ByVal hWnd As OLE_HANDLE, _
    ByVal hWndInsertAfter As OLE_HANDLE, _
    ByVal X As Long, _
    ByVal Y As Long, _
    ByVal cx As Long, _
    ByVal cy As Long, _
    ByVal wFlags As SWP _
) As Long

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。