2009-03-07 8 views
1

すべてのプログラムは、ステータスバー上のスクロールバーを持っています。右?まあ、私のものではありません。私は私のプログラムで私自身のスクロールバーを設定しようとするとどのようにステータスバー上のウィンドウのデフォルトのスクロールバーを移動するには?

、私は驚くほど彼らが働かせました!だから、私はステータスバーの作業も手に入れました!ハレイ! :-) ...しかし、ステータスバーはスクロールバーの上にあり、スクロールバーの下にある必要があります。スクロールバーを移動するには?私はスクロールバーを動かすことに関する何らかの機能を見つけることができませんでした。私は(をスクロールバーのウィンドウ自身が、非常によくそのdidntの仕事を作成しない限り、それはいくつかの奇妙なバグがありました:私は、デフォルトの高さを使用する場合、それは完全に見えなくスクロールバーになった、と私は私の定義された高さを使用する場合、スクロールバーがWindows98でのテーマや何かを持っていました!O_O

ここでは私のステータスバーを作成するコードです:

// Create status bar 
hStatus = CreateWindowEx(
    0, 
    STATUSCLASSNAME, 
    NULL, 
    WS_CHILD | WS_VISIBLE | SBARS_SIZEGRIP, 
    0, 0, 0, 0, 
    hWnd, 
    (HMENU)IDC_MAIN_STATUS, 
    GetModuleHandle(NULL), 
    NULL 
); 

とウィンドウの作成:

if (!(hWnd=CreateWindowEx(dwExStyle,   // Extended Style For The Window 
    "OpenGL",     // Class Name 
    title,      // Window Title 
    dwStyle |     // Defined Window Style 
    WS_OVERLAPPEDWINDOW | WS_CLIPSIBLINGS | 
    WS_CLIPCHILDREN | WM_HSCROLL | WM_VSCROLL, // Required Window Style 
    0, 0,      // Window Position 
    WindowRect.right-WindowRect.left,  // Calculate Window Width 
    WindowRect.bottom-WindowRect.top,  // Calculate Window Height 
    NULL,      // No Parent Window 
    NULL,      // No Menu 
    hInstance,     // Instance 
    NULL)))      // Dont Pass Anything To WM_CREATE 

私はまだ実現しhaventはいくつかの巧妙なトリック、誰enliがなければなりませんこれを正しく行う方法について私にghten?

答えて

2

実行メモ帳やスパイでそれを検査++、あなたはスクロールバーやステータスバーでエリアが表示されますが、共通の親を持つ2つのピアウィンドウです。あなたにもこれを実行する必要があり、その後、あなたの親ウィンドウのサイズや位置を変更するたびに、互いに対してあなたの二つのウィンドウを配置するSetWindowPos()を使用します。

関連する問題