回答編集履歴

2

脱字訂正

2016/12/26 04:30

投稿

catsforepaw
catsforepaw

スコア5938

test CHANGED
@@ -68,7 +68,7 @@
68
68
 
69
69
  ```
70
70
 
71
- #nclude "MyForm.h"
71
+ #include "MyForm.h"
72
72
 
73
73
  using namespace プロジェクト名;
74
74
 

1

サンプルコード追記

2016/12/26 04:30

投稿

catsforepaw
catsforepaw

スコア5938

test CHANGED
@@ -9,3 +9,87 @@
9
9
  ヘッダーをインクルードすればいいだけだと思うのですが。例えば、MyFormのコードの中でMyUserControlを使いたいなら、MyForm.hの最初の方(namespace ~の前あたり)で`#include "MyUserControl.h"`と書けば使えるようになります。
10
10
 
11
11
  そういう話ではないのですか?
12
+
13
+
14
+
15
+ ---
16
+
17
+ サンプルコード
18
+
19
+ フォーム側
20
+
21
+ ```
22
+
23
+ public ref class MyForm : public System::Windows::Forms::Form
24
+
25
+ {
26
+
27
+ public:
28
+
29
+ MyForm(void)
30
+
31
+ {
32
+
33
+ InitializeComponent();
34
+
35
+
36
+
37
+ // staticメンバにthisポインタを格納。
38
+
39
+ // ※複数のインスタンスを作らないことが前提
40
+
41
+ spThis = this;
42
+
43
+ }
44
+
45
+ public: System::Windows::Forms::PictureBox^ pictureBox1;
46
+
47
+ // ↑ デザイナーでModifiresプロパティを変更するとここが書き換わる
48
+
49
+
50
+
51
+ public:
52
+
53
+ // グローバル関数からアクセスできるようにstaticメンバ変数でthisポインタを保持
54
+
55
+ static MyForm^ spThis;
56
+
57
+
58
+
59
+ :
60
+
61
+ :
62
+
63
+ };
64
+
65
+ ```
66
+
67
+ 呼び出し側
68
+
69
+ ```
70
+
71
+ #nclude "MyForm.h"
72
+
73
+ using namespace プロジェクト名;
74
+
75
+
76
+
77
+ void MyAppFunction()
78
+
79
+ {
80
+
81
+ auto g = MyForm::spThis->pictureBox1->CreateGraphics();
82
+
83
+
84
+
85
+ :
86
+
87
+ :
88
+
89
+ }
90
+
91
+ ```
92
+
93
+
94
+
95
+