0

32767 より大きい座標を持つ子ウィンドウを作成するにはどうすればよいですか? 例えば:

HWND tmp = 
CreateWindow(
    _T( "BUTTON" ), _T( "Test" ),
    WS_CHILD | WS_VISIBLE,
    10, 45000, 80, 25,
    hWnd, (HMENU)1, (HINSTANCE)GetModuleHandle( NULL ), NULL );

このコードは、座標 10;32767 のボタンを作成します。MoveWindow または SetWindowPos 関数を使用しても同じ結果が得られます。

スクロール コントロールと子コントロールを含むウィンドウを作成する必要があります (単純なフォーム)。

4

2 に答える 2

1
HWND CreateWindowExPatched( DWORD exStyle, LPCTSTR className, LPCTSTR title, DWORD style, int x, int y, int width, int height, HWND parent, HMENU menu, HINSTANCE instance, LPVOID param )
{
    HWND hWnd = NULL;

    ScrollWindow( parent, -x, -y, NULL, NULL );
    hWnd = CreateWindowEx( exStyle, className, title, style, 0, 0, width, height, parent, menu, instance, param );
    ScrollWindow( parent, x, y, NULL, NULL );

    return hWnd;
}

HWND CreateWindowPatched( LPCTSTR className, LPCTSTR title, DWORD style, int x, int y, int width, int height, HWND parent, HMENU menu, HINSTANCE instance, LPVOID param )
{
    return CreateWindowExPatched( 0, className, title, style, x, y, width, height, parent, menu, instance, param );
}
于 2012-04-12T14:49:03.403 に答える