2009-06-26 5 views
0

私はCreateWindowEx()関数を使って "EDIT"ウィンドウを作成しています。ウィンドウを作るCreateWIndowEx()を使って静的にテキストを追加できるようにする

g_hwndMain =のCreateWindowEx(0、 WC_TEXT、
NULL、
WS_VISIBLE | WS_BORDER | ES_AUTOHSCROLL、
0、0、400、200、
phwnd、NULL、 g_hInstance、NULL);

しかし、私はまた、ウィンドウを静的にしたいと思います。ウィンドウの作成中にそれを行う方法はありますか?または、ウィンドウの作成後に使用されるその他の関数?私は、SWP_NOSENDCHANGINGとSWP_NOREPOSITIONを使ってウィンドウを作成した後、SetWindowPos関数を使ってみましたが、それはトリックではありませんでした。何か案は?


いいえ、私は不動の窓を意味します。基本的に、私が作成するウィンドウはテキストを受け入れ、同時に動かないようにすべきです。

+0

「静的」とは、読み取り専用を意味しますか?テキストを読み込んだ後、[EM_SETREADONLY](http://msdn.microsoft.com/en-us/library/bb761655(VS.85).aspx)を送信します。 – RichieHindle

+0

静的とは、ウィンドウを移動できないことを意味します。 – arul

+0

しかし、それは編集コントロールです... WS_CAPTIONなどを与えない限り、とにかくそれを動かすことはできません...? – RichieHindle

答えて

0

ありがとうございました。 [OK]をこれまでのところ、私はこれがWM_WINDOWPOSCHANGINGメッセージ

BOOL OnWindowPosChanging(HWND hwnd, WINDOWPOS *pwp) 
{ 

    return 0; 
} 

LRESULT CALLBACK 
WndProc(HWND hwnd, UINT uiMsg, WPARAM wParam, LPARAM lParam) 
{ 
    switch (uiMsg) { 

     HANDLE_MSG(hwnd, WM_WINDOWPOSCHANGING, OnWindowPosChanging); 
    } 

    return DefWindowProc(hwnd, uiMsg, wParam, lParam); 
} 

を処理するためにやったと私は私の窓を作成するときに、私はこれを行う:

g_hwndMain = CreateWindowEx(0, 
          TEXT("EDIT"), 
          NULL, 
          WS_BORDER, 
          0, 0, 400, 200, 
          phwnd, NULL, 
          g_hInstance, NULL); 

        if (!g_hwndMain) { 
         RemoveImages(spHTMLDoc);//Just so I know that the window has been created properly 
        } 
        else{       

         SetWindowPos(g_hwndMain, HWND_TOP, 500, 500, 300, 300, SWP_NOSENDCHANGING | SWP_SHOWWINDOW); 
        } 

SWP_NOMOVEフラグがコードが位置を変更ことはできません。ウィンドウの位置を変更するには、マウスを使用してウィンドウの位置を変更することができます。しかし、これはまさに私が避けたいものです。ウィンドウはのスタティックにする必要があります。私のコードに欠けているもの、またはそれ以上の提案?

+0

よかった、私はこれを考え出した。 CreateWIndowで、WS_CHILDフラグを4番目のパラメータとして追加します。これはトリックを行います。ご協力いただきありがとうございます!!! – GotAmye

+0

WS_CHILDの代わりにWS_POPUPを使用するほうがよい – GotAmye

0

WM_WINDOWPOSCHANGINGメッセージを処理し、WINDOWPOS構造体のflagsメンバーのSWP_NOMOVEフラグを転送する必要があります。

このblog postには例があります(ただし、サイズの変更はできませんが、技術は同じです)。

関連する問題