0

コントロールの x 座標と y 座標を見つける必要がありますが、どこから始めればよいかわかりません。私がインターネットで見つけた唯一の解決策は MFC を使用しており、その使用は避けたいと考えています。では、MFC を使用せずにコントロールの座標を見つける方法はありますか?

FindWindow を使用してコントロールを検索します。

    RECT cr;
    HWND chWnd   =   FindWindow("SunAwtCanvas", NULL);
    GetWindowRect(chWnd, &cr);
    cw   =   cr.right;
    ch   =   cr.bottom;
    cx   =   cr.left;
    cy   =   cr.top;
    cout << chWnd << endl;

コントロールの hWnd が必要な場合、chWnd は 0 です。

4

2 に答える 2

1

コントロールのhwndでGetWindowRectを使用します(すべてのコントロールには独自のhwndがあります):http ://msdn.microsoft.com/en-gb/library/windows/desktop/ms633519(v = vs.85).aspx 。これにより、左、右、上、下が表示され、コントロールの境界を知ることができ、高さと幅も計算できます。

于 2013-03-02T19:06:58.203 に答える
1

HWND を取得するためのコードが悪いです。

MSDN から引用: FindWindow

クラス名とウィンドウ名が指定された文字列と一致する最上位ウィンドウへのハンドルを取得します。この関数は子ウィンドウを検索しません。この関数は、大文字と小文字を区別する検索を実行しません。

代わりにFindWindowExを使用してください。

于 2013-03-02T21:58:41.470 に答える