コントロールの種別を取得するには

解決


桜井  2011-05-23 17:26:13  No: 72654  IP: 192.*.*.*

コントロールIDから
コントロールの種別を取得したいのですが
出来るのでしょうか?


例えば、下記みたいな事をしたいです。

CStatic s;
int  type;
s = GetDlgItem(IDC_COMBOBOX_HOGE);

type = ???????  // コントロールの種別を取得
switch (type)
{
  case EDITTEXT:
    テキストの場合の処理
    break;
  case PUSHBUTTON:
    ボタンの場合の処理
    break;
  case LTEXT
    ラベルの場合の処理
    break;
}

環境
WindowsXP以上
VC++6 MFC

以上、よろしくお願いします。

編集 削除
gak  2011-05-23 18:22:06  No: 72655  IP: 192.*.*.*

_TCHAR  t[256];
if (::GetClassName(GetDlgItem(IDC_COMBOBOX_HOGE)->GetSafeHwnd(), t, _countof(t)) != 0) {
    if (_tcsicmp(t, _T("BUTTON")) == 0) {
    }
    else if (_tcsicmp(t, _T("COMBOBOX")) == 0) {
    }
    :
}

でどうだろう。

http://msdn.microsoft.com/en-us/library/ms632679.aspx
http://msdn.microsoft.com/en-us/library/ms633574.aspx#system
システムクラス名の一覧は↑に載ってる。

編集 削除
桜井  2011-05-24 09:10:22  No: 72656  IP: 192.*.*.*

GetClassName で、取得できました。

gakさん、ありがとうございました。

編集 削除