質問編集履歴
2
開発環境の追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,8 +1,11 @@
|
|
1
1
|
下記のプログラムを実行するとステータスが0×0100と0×0300しか返ってこず、
|
2
2
|
if分が実行されません。
|
3
|
+
|
4
|
+
MFCダイアログでは上手く実行できますが、
|
5
|
+
ActiveXでは上手く実行できません。
|
3
6
|
原因がわからず困っています。
|
4
7
|
|
5
|
-
この記述
|
8
|
+
この記述だとActiveXでは上手くいかないのでしょうか?
|
6
9
|
UINT nState = lpDrawItemStruct->itemState;
|
7
10
|
|
8
11
|
現状:ボタンを押下しても下2ケタの2ビットが取得できない。
|
@@ -10,6 +13,11 @@
|
|
10
13
|
ODS_SELECTED 0x0001
|
11
14
|
ODS_FOCUS 0x0010
|
12
15
|
|
16
|
+
開発環境
|
17
|
+
・Visual Studio 2008
|
18
|
+
・ActiveXコントロール
|
19
|
+
・Windows7
|
20
|
+
|
13
21
|
```VC++
|
14
22
|
void CAXSMPCtrl::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct)
|
15
23
|
{
|
1
title
CHANGED
File without changes
|
body
CHANGED
@@ -2,6 +2,9 @@
|
|
2
2
|
if分が実行されません。
|
3
3
|
原因がわからず困っています。
|
4
4
|
|
5
|
+
この記述がおかしいのでしょうか?
|
6
|
+
UINT nState = lpDrawItemStruct->itemState;
|
7
|
+
|
5
8
|
現状:ボタンを押下しても下2ケタの2ビットが取得できない。
|
6
9
|
<取得したい値>
|
7
10
|
ODS_SELECTED 0x0001
|
@@ -19,7 +22,7 @@
|
|
19
22
|
|
20
23
|
CDC* pDC = &dc;
|
21
24
|
CString strCaption;
|
22
|
-
|
25
|
+
UINT nState = lpDrawItemStruct->itemState;
|
23
26
|
CRect focusRect, btnRect;
|
24
27
|
focusRect.CopyRect(&lpDrawItemStruct->rcItem);
|
25
28
|
btnRect.CopyRect(&lpDrawItemStruct->rcItem);
|
@@ -38,7 +41,7 @@
|
|
38
41
|
DrawCaption(pDC, btnRect, GetTextColor(),strCaption);
|
39
42
|
pDC->DrawEdge(btnRect,EDGE_RAISED,BF_RECT);
|
40
43
|
|
41
|
-
|
44
|
+
// フォーカスを得たときや選択されているとき
|
42
45
|
if (nState & ODS_FOCUS)
|
43
46
|
{
|
44
47
|
if (nState & ODS_SELECTED)
|
@@ -50,7 +53,7 @@
|
|
50
53
|
else if(nState & ODS_DISABLED)
|
51
54
|
{
|
52
55
|
DrawCaption(pDC, btnRect, GetDisabledColor(), strCaption);
|
53
|
-
}
|
56
|
+
}
|
54
57
|
dc.Detach();
|
55
58
|
return;
|
56
59
|
}
|