source: dev/trunk/ab5.0/abdev/abdev/RadToolsAndPropertyProc.cpp@ 481

Last change on this file since 481 was 475, checked in by dai_9181, 16 years ago

構成管理を変更中・・・(いったんコミット)

File size: 219.4 KB
Line 
1#include "stdafx.h"
2
3#include "Common.h"
4
5#if defined(JPN)
6//日本語
7#include "rad_msg_jpn.h"
8#else
9//英語
10#include "rad_msg_eng.h"
11#endif
12
13void ShowControlAdvice(int Control){
14 if(Control==IDC_TOOL_MOUSE) SetStatusText("");
15
16#if defined(JPN)
17 //日本語
18 else if(Control==IDC_TOOL_BUTTON) SetStatusText("[ボタン] クリックすることができるボタンです。");
19 else if(Control==IDC_TOOL_CHECKBOX) SetStatusText("[チェック ボックス] ON/OFFの設定ができるボタンです。");
20 else if(Control==IDC_TOOL_COMBOBOX) SetStatusText("[コンボ ボックス] ドロップダウン リストの中から項目を選択することができます。");
21 else if(Control==IDC_TOOL_EDIT) SetStatusText("[エディット ボックス] ユーザーが文字列の編集操作を行うことができます。");
22 else if(Control==IDC_TOOL_GROUPBOX) SetStatusText("[グループ ボックス] 複数のコントロールを囲むことができます。");
23 else if(Control==IDC_TOOL_HSCROLLBAR) SetStatusText("[水平スクロールバー] 現在位置を表示、設定します。");
24 else if(Control==IDC_TOOL_IMAGEBOX) SetStatusText("[イメージ ボックス] 四角形やビットマップ、アイコンを表示します。");
25 else if(Control==IDC_TOOL_LISTBOX) SetStatusText("[リスト ボックス] 複数の項目を表示、選択できるリストです。");
26 else if(Control==IDC_TOOL_LISTVIEW) SetStatusText("[リスト ビュー] リスト ボックス内にアイコンやテキストを並べて表示するビューです。");
27 else if(Control==IDC_TOOL_PROGRESSBAR) SetStatusText("[プログレス バー] 進行状況を表示するバー。");
28 else if(Control==IDC_TOOL_RADIOBUTTON) SetStatusText("[ラジオ ボタン] 複数の項目から1つを選択するボタンです。");
29 else if(Control==IDC_TOOL_STATIC) SetStatusText("[スタティック テキスト] テキストを表示します。");
30 else if(Control==IDC_TOOL_TRACKBAR) SetStatusText("[トラック バー] 目盛が付いた移動バー。");
31 else if(Control==IDC_TOOL_TREEVIEW) SetStatusText("[ツリー ビュー] リストを階層構造で表示します。");
32 else if(Control==IDC_TOOL_UPDOWN) SetStatusText("[アップ ダウン コントロール] 上下のボタンで数値を設定します。");
33 else if(Control==IDC_TOOL_VSCROLLBAR) SetStatusText("[垂直スクロールバー] 現在位置を表示、設定します。");
34#else
35 //英語
36 else if(Control==IDC_TOOL_BUTTON) SetStatusText("[Button] The button which can be clicked");
37 else if(Control==IDC_TOOL_CHECKBOX) SetStatusText("[CheckBox] The button which can switch on/off");
38 else if(Control==IDC_TOOL_COMBOBOX) SetStatusText("[ComboBox] Choose an item from drop down lists");
39 else if(Control==IDC_TOOL_EDIT) SetStatusText("[EditBox] A user can edit a character sequence");
40 else if(Control==IDC_TOOL_GROUPBOX) SetStatusText("[GroupBox] Two or more control can be packed");
41 else if(Control==IDC_TOOL_HSCROLLBAR) SetStatusText("[Horizontal Scrollbar] The present position is displayed and setup");
42 else if(Control==IDC_TOOL_IMAGEBOX) SetStatusText("[ImageBox] A rectangle, a bitmap, and an icon are displayed.");
43 else if(Control==IDC_TOOL_LISTBOX) SetStatusText("[ListBox] The list which can display and choose two or more items");
44 else if(Control==IDC_TOOL_LISTVIEW) SetStatusText("[ListView] The view which displays an icon and a text in a list box");
45 else if(Control==IDC_TOOL_PROGRESSBAR) SetStatusText("[Progressbar] The bar which displays an advance situation");
46 else if(Control==IDC_TOOL_RADIOBUTTON) SetStatusText("[RadioButton] The button which chooses one from two or more items");
47 else if(Control==IDC_TOOL_STATIC) SetStatusText("[StaticText] Display the text messages");
48 else if(Control==IDC_TOOL_TRACKBAR) SetStatusText("[Trackbar] The bar to which the scale was attached");
49 else if(Control==IDC_TOOL_TREEVIEW) SetStatusText("[TreeView] Lists are displayed by the layered structure");
50 else if(Control==IDC_TOOL_UPDOWN) SetStatusText("[Up/Down Control] A numerical value is set up with a up/down button");
51 else if(Control==IDC_TOOL_VSCROLLBAR) SetStatusText("[Vertical Scrollbar] The present position is displayed and setup");
52#endif
53}
54
55char *GetControlName(DWORD id){
56 char *pTemp;
57 pTemp="";
58
59#if defined(JPN)
60 //日本語
61 if(id==IDC_TOOL_MOUSE) pTemp="選択";
62 else if(id==IDC_TOOL_STATIC) pTemp="スタティック テキスト";
63 else if(id==IDC_TOOL_EDIT) pTemp="エディット ボックス";
64 else if(id==IDC_TOOL_GROUPBOX) pTemp="グループ ボックス";
65 else if(id==IDC_TOOL_COMBOBOX) pTemp="コンボ ボックス";
66 else if(id==IDC_TOOL_LISTBOX) pTemp="リスト ボックス";
67 else if(id==IDC_TOOL_BUTTON) pTemp="ボタン";
68 else if(id==IDC_TOOL_CHECKBOX) pTemp="チェック ボックス";
69 else if(id==IDC_TOOL_RADIOBUTTON) pTemp="ラジオ ボタン";
70 else if(id==IDC_TOOL_LISTVIEW) pTemp="リスト ビュー";
71 else if(id==IDC_TOOL_TREEVIEW) pTemp="ツリー ビュー";
72 else if(id==IDC_TOOL_HSCROLLBAR) pTemp="水平スクロール バー";
73 else if(id==IDC_TOOL_VSCROLLBAR) pTemp="垂直スクロール バー";
74 else if(id==IDC_TOOL_UPDOWN) pTemp="アップ ダウン コントロール";
75 else if(id==IDC_TOOL_IMAGEBOX) pTemp="イメージ ボックス";
76 else if(id==IDC_TOOL_TRACKBAR) pTemp="トラック バー";
77 else if(id==IDC_TOOL_PROGRESSBAR) pTemp="プログレス バー";
78#else
79 //英語
80 if(id==IDC_TOOL_MOUSE) pTemp="Tool";
81 else if(id==IDC_TOOL_STATIC) pTemp="StaticText";
82 else if(id==IDC_TOOL_EDIT) pTemp="EditBox";
83 else if(id==IDC_TOOL_GROUPBOX) pTemp="GroupBox";
84 else if(id==IDC_TOOL_COMBOBOX) pTemp="ComboBox";
85 else if(id==IDC_TOOL_LISTBOX) pTemp="ListBox";
86 else if(id==IDC_TOOL_BUTTON) pTemp="Button";
87 else if(id==IDC_TOOL_CHECKBOX) pTemp="CheckBox";
88 else if(id==IDC_TOOL_RADIOBUTTON) pTemp="RadioButton";
89 else if(id==IDC_TOOL_LISTVIEW) pTemp="ListView";
90 else if(id==IDC_TOOL_TREEVIEW) pTemp="TreeView";
91 else if(id==IDC_TOOL_HSCROLLBAR) pTemp="Horizontal Scrollbar";
92 else if(id==IDC_TOOL_VSCROLLBAR) pTemp="Vertical Scrollbar";
93 else if(id==IDC_TOOL_UPDOWN) pTemp="Up/Down Control";
94 else if(id==IDC_TOOL_IMAGEBOX) pTemp="ImageBox";
95 else if(id==IDC_TOOL_TRACKBAR) pTemp="Trackbar";
96 else if(id==IDC_TOOL_PROGRESSBAR) pTemp="Progressbar";
97#endif
98
99 return pTemp;
100}
101BOOL CALLBACK RadToolButtonsProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
102 extern MDIINFO MdiInfo[MAX_WNDNUM];
103 extern PROJECTINFO ProjectInfo;
104 int i,i2,WndNum;
105 HWND hParent;
106 HWND hToolBar;
107 RECT rect;
108 TBBUTTON CtrlToolBar[]={
109 {0,IDC_TOOL_MOUSE,TBSTATE_ENABLED|TBSTATE_WRAP|TBSTATE_CHECKED,TBSTYLE_CHECKGROUP,0,0},
110 {1,IDC_TOOL_STATIC,TBSTATE_ENABLED,TBSTYLE_CHECKGROUP,0,0},
111 {2,IDC_TOOL_EDIT,TBSTATE_ENABLED,TBSTYLE_CHECKGROUP,0,0},
112 {3,IDC_TOOL_GROUPBOX,TBSTATE_ENABLED,TBSTYLE_CHECKGROUP,0,0},
113 {BMPNUM_RADTOOLBAR-1,0,TBSTATE_INDETERMINATE,TBSTYLE_CHECKGROUP,0,0},
114 {4,IDC_TOOL_COMBOBOX,TBSTATE_ENABLED,TBSTYLE_CHECKGROUP,0,0},
115 {5,IDC_TOOL_LISTBOX,TBSTATE_ENABLED|TBSTATE_WRAP,TBSTYLE_CHECKGROUP,0,0},
116 {6,IDC_TOOL_BUTTON,TBSTATE_ENABLED,TBSTYLE_CHECKGROUP,0,0},
117 {7,IDC_TOOL_CHECKBOX,TBSTATE_ENABLED,TBSTYLE_CHECKGROUP,0,0},
118 {8,IDC_TOOL_RADIOBUTTON,TBSTATE_ENABLED,TBSTYLE_CHECKGROUP,0,0},
119 {BMPNUM_RADTOOLBAR-1,0,TBSTATE_INDETERMINATE,TBSTYLE_CHECKGROUP,0,0},
120 {9,IDC_TOOL_LISTVIEW,TBSTATE_ENABLED,TBSTYLE_CHECKGROUP,0,0},
121 {10,IDC_TOOL_TREEVIEW,TBSTATE_ENABLED|TBSTATE_WRAP,TBSTYLE_CHECKGROUP,0,0},
122 {11,IDC_TOOL_HSCROLLBAR,TBSTATE_ENABLED,TBSTYLE_CHECKGROUP,0,0},
123 {12,IDC_TOOL_VSCROLLBAR,TBSTATE_ENABLED,TBSTYLE_CHECKGROUP,0,0},
124 {13,IDC_TOOL_UPDOWN,TBSTATE_ENABLED,TBSTYLE_CHECKGROUP,0,0},
125 {BMPNUM_RADTOOLBAR-1,0,TBSTATE_INDETERMINATE,TBSTYLE_CHECKGROUP,0,0},
126 {14,IDC_TOOL_IMAGEBOX,TBSTATE_ENABLED|TBSTATE_WRAP,TBSTYLE_CHECKGROUP,0,0},
127 {15,IDC_TOOL_TRACKBAR,TBSTATE_ENABLED,TBSTYLE_CHECKGROUP,0,0},
128 {16,IDC_TOOL_PROGRESSBAR,TBSTATE_ENABLED,TBSTYLE_CHECKGROUP,0,0},
129 };
130 TOOLTIPTEXT *pTipText;
131
132 switch(message){
133 case WM_INITDIALOG:
134 hToolBar=CreateToolbarEx(hwnd,WS_CHILD|WS_VISIBLE|CCS_NODIVIDER|TBSTYLE_FLAT|TBSTYLE_TOOLTIPS,
135 NULL,
136 BMPNUM_RADTOOLBAR, /*ビットマップの個数*/
137 hResInst,(unsigned int)MAKEINTRESOURCE(IDR_CONTROL),CtrlToolBar,
138 (BMPNUM_RADTOOLBAR-1)+SEPNUM_RADTOOLBAR, /*アイテムの個数*/
139 0,0,16,15,sizeof(TBBUTTON));
140
141 //Windows9x系OSでの不具合を防ぐため
142 PostMessage(hwnd,WM_USER+120,0,0);
143
144 break;
145 case WM_USER+120:
146 GetClientRect(hwnd,&rect);
147 MoveWindow(hwnd,5,22,rect.right,rect.bottom,1);
148 MoveWindow(GetWindow(hwnd,GW_CHILD),0,0,rect.right,rect.bottom,1);
149 return 1;
150 case WM_COMMAND:
151 switch(LOWORD(wParam)){
152 case IDC_TOOL_MOUSE:
153 ShowControlAdvice(LOWORD(wParam));
154 hParent=GetParent(GetParent(hwnd));
155 BringWindowToTop(hParent);
156 i=GetWndNum(hParent);
157 i2=GetWndInfoNum(MdiInfo[i].path);
158 MdiInfo[i].MdiRadInfo->ButtonSelect=IDC_TOOL_MOUSE;
159 DrawSelectingRect(MdiInfo[i].MdiRadInfo->hRad,i,i2,IDC_TOOL_MOUSE);
160 SetFocus(MdiInfo[i].MdiRadInfo->hRad);
161 return 1;
162 case IDC_TOOL_BUTTON:
163 case IDC_TOOL_CHECKBOX:
164 case IDC_TOOL_COMBOBOX:
165 case IDC_TOOL_EDIT:
166 case IDC_TOOL_GROUPBOX:
167 case IDC_TOOL_HSCROLLBAR:
168 case IDC_TOOL_IMAGEBOX:
169 case IDC_TOOL_LISTBOX:
170 case IDC_TOOL_LISTVIEW:
171 case IDC_TOOL_PROGRESSBAR:
172 case IDC_TOOL_RADIOBUTTON:
173 case IDC_TOOL_STATIC:
174 case IDC_TOOL_TRACKBAR:
175 case IDC_TOOL_TREEVIEW:
176 case IDC_TOOL_UPDOWN:
177 case IDC_TOOL_VSCROLLBAR:
178 ShowControlAdvice(LOWORD(wParam));
179 hParent=GetParent(GetParent(hwnd));
180 BringWindowToTop(hParent);
181 WndNum=GetWndNum(hParent);
182 MdiInfo[WndNum].MdiRadInfo->ButtonSelect=LOWORD(wParam);
183 InvalidateRect(MdiInfo[WndNum].MdiRadInfo->hRad,NULL,0);
184 return 1;
185 }
186 break;
187 case WM_NOTIFY:
188 pTipText=(TOOLTIPTEXT *)lParam;
189 if(pTipText->hdr.code==TTN_NEEDTEXT){
190 //ステータスバーに説明文を表示
191 ShowControlAdvice(pTipText->hdr.idFrom);
192
193 //コントロール名を取得し、ツールヒントとして表示する
194 pTipText->lpszText=GetControlName(pTipText->hdr.idFrom);
195 }
196 break;
197 }
198 return 0;
199}
200LRESULT CALLBACK RadToolsWindow(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
201 extern MDIINFO MdiInfo[MAX_WNDNUM];
202 extern PROJECTINFO ProjectInfo;
203 extern HFONT hStatusFont;
204 int i;
205 RECT rect;
206 SCROLLINFO ScrollInfo;
207 HDC hdc;
208 PAINTSTRUCT ps;
209 HFONT hOldFont;
210 POINT pos;
211
212 switch(message){
213 case WM_CREATE:
214 CreateDialog(hResInst,MAKEINTRESOURCE(IDD_RAD_CTRLBUTTONS),hwnd,(DLGPROC)RadToolButtonsProc);
215 return 0;
216 case WM_VSCROLL:
217 ScrollInfo.cbSize=sizeof(SCROLLINFO);
218 ScrollInfo.fMask=SIF_POS|SIF_PAGE|SIF_RANGE;
219 GetScrollInfo(hwnd,SB_VERT,&ScrollInfo);
220 if(LOWORD(wParam)==SB_LINEUP) i=-20;
221 else if(LOWORD(wParam)==SB_LINEDOWN) i=20;
222 else if(LOWORD(wParam)==SB_PAGEUP) i=-(signed int)ScrollInfo.nPage;
223 else if(LOWORD(wParam)==SB_PAGEDOWN) i=ScrollInfo.nPage;
224 else if(LOWORD(wParam)==SB_THUMBTRACK) i=HIWORD(wParam)-ScrollInfo.nPos;
225 else i=0;
226 GetClientRect(hwnd,&rect);
227 i=max(-ScrollInfo.nPos,min(i,ScrollInfo.nMax-rect.bottom-ScrollInfo.nPos));
228 if(i!=0){
229 ScrollInfo.nPos+=i;
230 SetScrollInfo(hwnd,SB_VERT,&ScrollInfo,1);
231 ScrollWindow(hwnd,0,-i,NULL,NULL);
232 UpdateWindow(hwnd);
233 }
234 return 0;
235 case WM_SIZE:
236 GetClientRect(GetWindow(hwnd,GW_CHILD),&rect);
237 ScrollInfo.cbSize=sizeof(SCROLLINFO);
238 ScrollInfo.fMask=SIF_PAGE|SIF_RANGE|SIF_POS;
239
240 //垂直スクロールバーの設定
241 GetScrollInfo(hwnd,SB_VERT,&ScrollInfo);
242 ScrollInfo.nMin=0;
243 ScrollInfo.nMax=rect.bottom;
244 ScrollInfo.nPage=HIWORD(lParam);
245 SetScrollInfo(hwnd,SB_VERT,&ScrollInfo,1);
246
247 i=ScrollInfo.nPos;
248 ScrollInfo.fMask=SIF_POS;
249 GetScrollInfo(hwnd,SB_VERT,&ScrollInfo);
250 if(i>ScrollInfo.nPos){
251 ScrollWindow(hwnd,0,i-ScrollInfo.nPos,NULL,NULL);
252 UpdateWindow(hwnd);
253 }
254 return 0;
255 case WM_PAINT:
256 hdc=BeginPaint(hwnd,&ps);
257 hOldFont=(HFONT)SelectObject(hdc,hStatusFont);
258 SetBkMode(hdc,TRANSPARENT);
259 pos.x=30;
260 pos.y=3;
261 CursorPos_GlobalToLocal(hwnd,&pos.x,&pos.y);
262#if defined(JPN)
263 //日本語
264 TextOut(hdc,pos.x,pos.y,"- コントロール -",lstrlen("- コントロール -"));
265#else
266 //英語
267 TextOut(hdc,pos.x,pos.y,"- Control -",lstrlen("- Control -"));
268#endif
269 SelectObject(hdc,hOldFont);
270 EndPaint(hwnd,&ps);
271 return 0;
272 }
273 return DefWindowProc(hwnd,message,wParam,lParam);
274}
275
276
277/////////////////////////
278//ウィンドウ プロパティ
279
280void RadProperty_Window_Caption_StylingOrder(HWND hwnd,DWORD *style){
281 if((*style&WS_CAPTION)==WS_CAPTION){
282 EnableWindow(GetDlgItem(hwnd,IDC_STYLE_SYSMENU),1);
283 if(!(*style&WS_CHILD)){
284 EnableWindow(GetDlgItem(hwnd,IDC_STYLE_MINIMIZEBOX),1);
285 EnableWindow(GetDlgItem(hwnd,IDC_STYLE_MAXIMIZEBOX),1);
286 }
287 if(SendDlgItemMessage(hwnd,IDC_BORDERSTYLE,CB_GETCURSEL,0,0)==0){
288 if(*style&WS_THICKFRAME) SendDlgItemMessage(hwnd,IDC_BORDERSTYLE,CB_SETCURSEL,2,0);
289 else SendDlgItemMessage(hwnd,IDC_BORDERSTYLE,CB_SETCURSEL,1,0);
290 }
291 }
292 else{
293 *style&=~(WS_SYSMENU|WS_MINIMIZEBOX|WS_MAXIMIZEBOX);
294 SendDlgItemMessage(hwnd,IDC_STYLE_SYSMENU,BM_SETCHECK,BST_UNCHECKED,0);
295 SendDlgItemMessage(hwnd,IDC_STYLE_MINIMIZEBOX,BM_SETCHECK,BST_UNCHECKED,0);
296 SendDlgItemMessage(hwnd,IDC_STYLE_MAXIMIZEBOX,BM_SETCHECK,BST_UNCHECKED,0);
297 EnableWindow(GetDlgItem(hwnd,IDC_STYLE_SYSMENU),0);
298 EnableWindow(GetDlgItem(hwnd,IDC_STYLE_MINIMIZEBOX),0);
299 EnableWindow(GetDlgItem(hwnd,IDC_STYLE_MAXIMIZEBOX),0);
300 }
301}
302void RadProperty_Window_Border_StylingOrder(HWND hwnd,DWORD *style){
303 if(*style&(WS_BORDER|WS_THICKFRAME)){
304 if(*style&(WS_POPUP|WS_CHILD)) EnableWindow(GetDlgItem(hwnd,IDC_STYLE_CAPTION),1);
305 else{
306 *style|=WS_CAPTION;
307 SendDlgItemMessage(hwnd,IDC_STYLE_CAPTION,BM_SETCHECK,BST_CHECKED,0);
308 EnableWindow(GetDlgItem(hwnd,IDC_STYLE_CAPTION),0);
309 }
310 }
311 else{
312 *style&=~WS_CAPTION;
313 SendDlgItemMessage(hwnd,IDC_STYLE_CAPTION,BM_SETCHECK,BST_UNCHECKED,0);
314 EnableWindow(GetDlgItem(hwnd,IDC_STYLE_CAPTION),0);
315 }
316 RadProperty_Window_Caption_StylingOrder(hwnd,style);
317}
318void RadProperty_Window_Window_StylingOrder(HWND hwnd,DWORD *style){
319 if(*style&WS_POPUP){
320 EnableWindow(GetDlgItem(hwnd,IDC_STYLE_CAPTION),1);
321 EnableWindow(GetDlgItem(hwnd,IDC_STYLE_MINIMIZEBOX),1);
322 EnableWindow(GetDlgItem(hwnd,IDC_STYLE_MAXIMIZEBOX),1);
323 EnableWindow(GetDlgItem(hwnd,IDC_STYLE_MINIMIZE),1);
324 EnableWindow(GetDlgItem(hwnd,IDC_STYLE_MAXIMIZE),1);
325 }
326 else if(*style&WS_CHILD){
327 EnableWindow(GetDlgItem(hwnd,IDC_STYLE_CAPTION),1);
328
329 *style&=~(WS_MINIMIZEBOX|WS_MAXIMIZEBOX|WS_MINIMIZE|WS_MAXIMIZE);
330 SendDlgItemMessage(hwnd,IDC_STYLE_MINIMIZEBOX,BM_SETCHECK,BST_UNCHECKED,0);
331 SendDlgItemMessage(hwnd,IDC_STYLE_MAXIMIZEBOX,BM_SETCHECK,BST_UNCHECKED,0);
332 SendDlgItemMessage(hwnd,IDC_STYLE_MINIMIZE,BM_SETCHECK,BST_UNCHECKED,0);
333 SendDlgItemMessage(hwnd,IDC_STYLE_MAXIMIZE,BM_SETCHECK,BST_UNCHECKED,0);
334 EnableWindow(GetDlgItem(hwnd,IDC_STYLE_MINIMIZEBOX),0);
335 EnableWindow(GetDlgItem(hwnd,IDC_STYLE_MAXIMIZEBOX),0);
336 EnableWindow(GetDlgItem(hwnd,IDC_STYLE_MINIMIZE),0);
337 EnableWindow(GetDlgItem(hwnd,IDC_STYLE_MAXIMIZE),0);
338 }
339 else{
340 if(*style&WS_BORDER){
341 *style|=WS_CAPTION;
342 SendDlgItemMessage(hwnd,IDC_STYLE_CAPTION,BM_SETCHECK,BST_CHECKED,0);
343 EnableWindow(GetDlgItem(hwnd,IDC_STYLE_CAPTION),0);
344
345 EnableWindow(GetDlgItem(hwnd,IDC_STYLE_MINIMIZEBOX),1);
346 EnableWindow(GetDlgItem(hwnd,IDC_STYLE_MAXIMIZEBOX),1);
347 EnableWindow(GetDlgItem(hwnd,IDC_STYLE_MINIMIZE),1);
348 EnableWindow(GetDlgItem(hwnd,IDC_STYLE_MAXIMIZE),1);
349 }
350 }
351 RadProperty_Window_Border_StylingOrder(hwnd,style);
352}
353BOOL CALLBACK DlgRadProperty_Window_Rename(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
354 extern HANDLE hHeap;
355 extern HWND hClient,hOwner;
356 extern MDIINFO MdiInfo[MAX_WNDNUM];
357 extern PROJECTINFO ProjectInfo;
358 int i,i2,i3;
359 char temporary[MAX_PATH],temp2[MAX_PATH];
360 switch(message){
361 case WM_INITDIALOG:
362 SetPosCenter(hwnd);
363 i=GetWndNum(GetWindow(hClient,GW_CHILD));
364 i2=GetWndInfoNum(MdiInfo[i].path);
365 sprintf(temporary,"h%s",ProjectInfo.pWindowInfo[i2].name);
366 sprintf(temp2,"%sProc",ProjectInfo.pWindowInfo[i2].name);
367 if(lstrcmp(temporary,ProjectInfo.pWindowInfo[i2].HandleName)==0&&
368 lstrcmp(temp2,ProjectInfo.pWindowInfo[i2].CallBackName)==0){
369 SendDlgItemMessage(hwnd,IDC_AUTOSET,BM_SETCHECK,BST_CHECKED,0);
370 SendMessage(hwnd,WM_COMMAND,IDC_AUTOSET,0);
371 }
372 SetDlgItemText(hwnd,IDC_WINDOWNAME,ProjectInfo.pWindowInfo[i2].name);
373 SetDlgItemText(hwnd,IDC_WINDOWHANDLE,ProjectInfo.pWindowInfo[i2].HandleName);
374 SetDlgItemText(hwnd,IDC_WINDOWPROC,ProjectInfo.pWindowInfo[i2].CallBackName);
375 break;
376 case WM_COMMAND:
377 switch(LOWORD(wParam)){
378 case IDOK:
379 if(GetWindowTextLength(GetDlgItem(hwnd,IDC_WINDOWNAME))==0){
380 //MsgBox "ウィンドウ識別名を入力して下さい。"
381 MessageBox(hOwner,STRING_WINDOW_RENAME_MUST_WINDOWNAME,APPLICATION_NAME,MB_OK|MB_ICONEXCLAMATION);
382 break;
383 }
384 if(GetWindowTextLength(GetDlgItem(hwnd,IDC_WINDOWHANDLE))==0){
385 //MsgBox "ハンドル名を入力して下さい。"
386 MessageBox(hOwner,STRING_WINDOW_RENAME_MUST_HANDLENAME,APPLICATION_NAME,MB_OK|MB_ICONEXCLAMATION);
387 break;
388 }
389 if(GetWindowTextLength(GetDlgItem(hwnd,IDC_WINDOWPROC))==0){
390 //MsgBox "プロシージャ名を入力して下さい。"
391 MessageBox(hOwner,STRING_WINDOW_RENAME_MUST_PROCEDURENAME,APPLICATION_NAME,MB_OK|MB_ICONEXCLAMATION);
392 break;
393 }
394
395 i=GetWndNum(GetWindow(hClient,GW_CHILD));
396 i2=GetWndInfoNum(MdiInfo[i].path);
397
398 RAD_UNDOSTATE_NAME names,NoticeNames;
399 i3=GetWindowTextLength(GetDlgItem(hwnd,IDC_WINDOWNAME))+1;
400 names.name=(char *)HeapAlloc(hHeap,0,i3);
401 GetDlgItemText(hwnd,IDC_WINDOWNAME,names.name,i3);
402
403 i3=GetWindowTextLength(GetDlgItem(hwnd,IDC_WINDOWHANDLE))+1;
404 names.HandleName=(char *)HeapAlloc(hHeap,0,i3);
405 GetDlgItemText(hwnd,IDC_WINDOWHANDLE,names.HandleName,i3);
406
407 i3=GetWindowTextLength(GetDlgItem(hwnd,IDC_WINDOWPROC))+1;
408 names.CallBackName=(char *)HeapAlloc(hHeap,0,i3);
409 GetDlgItemText(hwnd,IDC_WINDOWPROC,names.CallBackName,i3);
410
411 if(lstrcmp(names.name,ProjectInfo.pWindowInfo[i2].name)==0&&
412 lstrcmp(names.HandleName,ProjectInfo.pWindowInfo[i2].HandleName)==0&&
413 lstrcmp(names.CallBackName,ProjectInfo.pWindowInfo[i2].CallBackName)==0){
414 HeapDefaultFree(names.name);
415 HeapDefaultFree(names.HandleName);
416 HeapDefaultFree(names.CallBackName);
417 SendMessage(hwnd,WM_COMMAND,IDCANCEL,0);
418 return 1;
419 }
420
421 //MsgBox "これらのウィンドウ識別名を変更すると、ソースコード内の識別子は手動で変換する必要があります。変更しますか?"
422 if(IDCANCEL==MessageBox(hwnd,STRING_WINDOW_RENAME_CHECK,APPLICATION_NAME,MB_OKCANCEL|MB_ICONEXCLAMATION)) return 1;
423
424 //変更情報を更新
425 NoticeNames.name=ProjectInfo.pWindowInfo[i2].name;
426 NoticeNames.HandleName=ProjectInfo.pWindowInfo[i2].HandleName;
427 NoticeNames.CallBackName=ProjectInfo.pWindowInfo[i2].CallBackName;
428 Rad_NoticeChanging(i,RAD_UNDO_NAME,SELECT_WINDOW,(DWORD)&NoticeNames);
429
430 HeapDefaultFree(ProjectInfo.pWindowInfo[i2].name);
431 ProjectInfo.pWindowInfo[i2].name=names.name;
432 GlobalFree(MdiInfo[i].path);
433 MdiInfo[i].path=(char *)GlobalAlloc(GMEM_FIXED,lstrlen(names.name));
434 lstrcpy(MdiInfo[i].path,names.name);
435
436 HeapDefaultFree(ProjectInfo.pWindowInfo[i2].HandleName);
437 ProjectInfo.pWindowInfo[i2].HandleName=names.HandleName;
438
439 HeapDefaultFree(ProjectInfo.pWindowInfo[i2].CallBackName);
440 ProjectInfo.pWindowInfo[i2].CallBackName=names.CallBackName;
441
442 EndDialog(hwnd,1);
443 return 1;
444 case IDCANCEL:
445 EndDialog(hwnd,0);
446 return 1;
447 case IDC_WINDOWNAME:
448 if(HIWORD(wParam)==EN_CHANGE) SendMessage(hwnd,WM_COMMAND,IDC_AUTOSET,0);
449 return 1;
450 case IDC_AUTOSET:
451 if(SendDlgItemMessage(hwnd,IDC_AUTOSET,BM_GETCHECK,0,0)){
452 SendDlgItemMessage(hwnd,IDC_WINDOWHANDLE,EM_SETREADONLY,1,0);
453 SendDlgItemMessage(hwnd,IDC_WINDOWPROC,EM_SETREADONLY,1,0);
454 GetDlgItemText(hwnd,IDC_WINDOWNAME,temporary,MAX_PATH);
455 if(temporary[0]){
456 sprintf(temp2,"h%s",temporary);
457 SetDlgItemText(hwnd,IDC_WINDOWHANDLE,temp2);
458 sprintf(temp2,"%sProc",temporary);
459 SetDlgItemText(hwnd,IDC_WINDOWPROC,temp2);
460 }
461 else{
462 SetDlgItemText(hwnd,IDC_WINDOWHANDLE,"");
463 SetDlgItemText(hwnd,IDC_WINDOWPROC,"");
464 }
465 }
466 else{
467 SendDlgItemMessage(hwnd,IDC_WINDOWHANDLE,EM_SETREADONLY,0,0);
468 SendDlgItemMessage(hwnd,IDC_WINDOWPROC,EM_SETREADONLY,0,0);
469 }
470 return 1;
471 }
472 break;
473 }
474 return 0;
475}
476BOOL CALLBACK DlgRadProperty_Window_ExStyle(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
477 extern MDIINFO MdiInfo[MAX_WNDNUM];
478 extern PROJECTINFO ProjectInfo;
479 int i,i2;
480
481 switch(message){
482 case WM_INITDIALOG:
483 SetPosCenter(hwnd);
484 i=GetWndNum(GetWindow(hClient,GW_CHILD));
485 i2=GetWndInfoNum(MdiInfo[i].path);
486 if(ProjectInfo.pWindowInfo[i2].ExStyle&WS_EX_TOPMOST) SendDlgItemMessage(hwnd,IDC_EXSTYLE_TOPMOST,BM_SETCHECK,BST_CHECKED,0);
487 if(ProjectInfo.pWindowInfo[i2].ExStyle&WS_EX_ACCEPTFILES) SendDlgItemMessage(hwnd,IDC_EXSTYLE_ACCEPTFILES,BM_SETCHECK,BST_CHECKED,0);
488 if(ProjectInfo.pWindowInfo[i2].ExStyle&WS_EX_TRANSPARENT) SendDlgItemMessage(hwnd,IDC_EXSTYLE_TRANSPARENT,BM_SETCHECK,BST_CHECKED,0);
489 if(ProjectInfo.pWindowInfo[i2].ExStyle&WS_EX_TOOLWINDOW) SendDlgItemMessage(hwnd,IDC_EXSTYLE_TOOLWINDOW,BM_SETCHECK,BST_CHECKED,0);
490 if(ProjectInfo.pWindowInfo[i2].ExStyle&WS_EX_CLIENTEDGE) SendDlgItemMessage(hwnd,IDC_EXSTYLE_CLIENTEDGE,BM_SETCHECK,BST_CHECKED,0);
491 if(ProjectInfo.pWindowInfo[i2].ExStyle&WS_EX_STATICEDGE) SendDlgItemMessage(hwnd,IDC_EXSTYLE_STATICEDGE,BM_SETCHECK,BST_CHECKED,0);
492 if(ProjectInfo.pWindowInfo[i2].ExStyle&WS_EX_NOPARENTNOTIFY) SendDlgItemMessage(hwnd,IDC_EXSTYLE_NOPARENTNOTIFY,BM_SETCHECK,BST_CHECKED,0);
493 if(ProjectInfo.pWindowInfo[i2].ExStyle&WS_EX_CONTEXTHELP) SendDlgItemMessage(hwnd,IDC_EXSTYLE_CONTEXTHELP,BM_SETCHECK,BST_CHECKED,0);
494 if(ProjectInfo.pWindowInfo[i2].ExStyle&WS_EX_CONTROLPARENT) SendDlgItemMessage(hwnd,IDC_EXSTYLE_CONTROLPARENT,BM_SETCHECK,BST_CHECKED,0);
495 break;
496 case WM_COMMAND:
497 switch(LOWORD(wParam)){
498 case IDOK:
499 i=GetWndNum(GetWindow(hClient,GW_CHILD));
500 i2=GetWndInfoNum(MdiInfo[i].path);
501
502 DWORD style;
503 style=0;
504 if(SendDlgItemMessage(hwnd,IDC_EXSTYLE_TOPMOST,BM_GETCHECK,0,0))
505 style|=WS_EX_TOPMOST;
506 if(SendDlgItemMessage(hwnd,IDC_EXSTYLE_ACCEPTFILES,BM_GETCHECK,0,0))
507 style|=WS_EX_ACCEPTFILES;
508 if(SendDlgItemMessage(hwnd,IDC_EXSTYLE_TRANSPARENT,BM_GETCHECK,0,0))
509 style|=WS_EX_TRANSPARENT;
510 if(SendDlgItemMessage(hwnd,IDC_EXSTYLE_TOOLWINDOW,BM_GETCHECK,0,0))
511 style|=WS_EX_TOOLWINDOW;
512 if(SendDlgItemMessage(hwnd,IDC_EXSTYLE_CLIENTEDGE,BM_GETCHECK,0,0))
513 style|=WS_EX_CLIENTEDGE;
514 if(SendDlgItemMessage(hwnd,IDC_EXSTYLE_STATICEDGE,BM_GETCHECK,0,0))
515 style|=WS_EX_STATICEDGE;
516 if(SendDlgItemMessage(hwnd,IDC_EXSTYLE_NOPARENTNOTIFY,BM_GETCHECK,0,0))
517 style|=WS_EX_NOPARENTNOTIFY;
518 if(SendDlgItemMessage(hwnd,IDC_EXSTYLE_CONTEXTHELP,BM_GETCHECK,0,0))
519 style|=WS_EX_CONTEXTHELP;
520 if(SendDlgItemMessage(hwnd,IDC_EXSTYLE_CONTROLPARENT,BM_GETCHECK,0,0))
521 style|=WS_EX_CONTROLPARENT;
522
523 if(style==ProjectInfo.pWindowInfo[i2].ExStyle){
524 SendMessage(hwnd,WM_COMMAND,IDCANCEL,0);
525 return 1;
526 }
527
528 //変更情報
529 Rad_NoticeChanging(i,RAD_UNDO_EXSTYLE,SELECT_WINDOW,ProjectInfo.pWindowInfo[i2].ExStyle);
530
531 ProjectInfo.pWindowInfo[i2].ExStyle=style;
532 EndDialog(hwnd,1);
533 return 1;
534 case IDCANCEL:
535 EndDialog(hwnd,0);
536 return 1;
537 }
538 break;
539 }
540 return 0;
541}
542BOOL CALLBACK RadProperty_WindowProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
543 extern HANDLE hHeap;
544 extern MDIINFO MdiInfo[MAX_WNDNUM];
545 extern PROJECTINFO ProjectInfo;
546 int i,i2,i3,i4;
547 static BOOL bInitial;
548
549 switch(message){
550 case WM_INITDIALOG:
551 bInitial=1;
552 i=GetWndNum(GetParent(GetParent(hwnd)));
553 i2=GetWndInfoNum(MdiInfo[i].path);
554
555 SetDlgItemText(hwnd,IDC_WINDOWNAME,ProjectInfo.pWindowInfo[i2].name);
556 SetDlgItemText(hwnd,IDC_HANDLE,ProjectInfo.pWindowInfo[i2].HandleName);
557 SetDlgItemText(hwnd,IDC_CAPTION,ProjectInfo.pWindowInfo[i2].caption);
558
559 //"3D FACE(標準)"
560 SendDlgItemMessage(hwnd,IDC_BGCOLOR,CB_ADDSTRING,0,(long)STRING_WINDOWPROP_BGCOLOR1);
561 //"色指定"
562 SendDlgItemMessage(hwnd,IDC_BGCOLOR,CB_ADDSTRING,0,(long)STRING_WINDOWPROP_BGCOLOR2);
563
564 for(i3=0;i3<ProjectInfo.res.NumberOfBitmapRes;i3++)
565 SendDlgItemMessage(hwnd,IDC_BGCOLOR,CB_ADDSTRING,0,(long)ProjectInfo.res.pBitmapResInfo[i3].IdName);
566 if(ProjectInfo.pWindowInfo[i2].type==WNDTYPE_MODALDLG||
567 ProjectInfo.pWindowInfo[i2].type==WNDTYPE_MODELESSDLG){
568 SendDlgItemMessage(hwnd,IDC_BGCOLOR,CB_SETCURSEL,0,0);
569 EnableWindow(GetDlgItem(hwnd,IDC_BGCOLOR),0);
570 }
571 else{
572 if(ProjectInfo.pWindowInfo[i2].bgColor==COLOR_3DFACE){
573 //3DFACE
574 SendDlgItemMessage(hwnd,IDC_BGCOLOR,CB_SETCURSEL,0,0);
575 }
576 else if(ProjectInfo.pWindowInfo[i2].bgColor<=0){
577 //色指定
578 SendDlgItemMessage(hwnd,IDC_BGCOLOR,CB_SETCURSEL,1,0);
579 }
580 else if(ProjectInfo.pWindowInfo[i2].bgColor>=0x1000){
581 //ビットマップ指定
582 SendDlgItemMessage(hwnd,IDC_BGCOLOR,CB_SETCURSEL,2+ProjectInfo.pWindowInfo[i2].bgColor-0x1000,0);
583 }
584 }
585
586
587 ////////////
588 // メニュー
589 ////////////
590
591 //"なし"
592 SendDlgItemMessage(hwnd,IDC_WINDOWMENU,CB_ADDSTRING,0,(long)STRING_NONE_);
593
594 for(i3=0,i4=0;i3<ProjectInfo.NumberOfMenu;i3++){
595 if(ProjectInfo.pWindowInfo[i2].MenuID){
596 if(lstrcmpi(ProjectInfo.pMenuInfo[i3].IdName,ProjectInfo.pWindowInfo[i2].MenuID)==0)
597 i4=i3+1;
598 }
599 SendDlgItemMessage(hwnd,IDC_WINDOWMENU,CB_ADDSTRING,0,(long)ProjectInfo.pMenuInfo[i3].IdName);
600 }
601 if(i4==0&&ProjectInfo.pWindowInfo[i2].MenuID){
602 //メニューが存在しない場合、無効にする
603 HeapDefaultFree(ProjectInfo.pWindowInfo[i2].MenuID);
604 ProjectInfo.pWindowInfo[i2].MenuID=0;
605 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
606 }
607 SendDlgItemMessage(hwnd,IDC_WINDOWMENU,CB_SETCURSEL,i4,0);
608
609
610 ////////////
611 // アイコン
612 ////////////
613
614 //"Windowsロゴ(標準)"
615 SendDlgItemMessage(hwnd,IDC_ICONRES,CB_ADDSTRING,0,(long)STRING_WINDOWPROP_ICONDEFAULT);
616
617 for(i3=0,i4=0;i3<ProjectInfo.res.NumberOfIconRes;i3++){
618 SendDlgItemMessage(hwnd,IDC_ICONRES,CB_ADDSTRING,0,(long)ProjectInfo.res.pIconResInfo[i3].IdName);
619
620 if(lstrcmp(ProjectInfo.pWindowInfo[i2].IconResName,ProjectInfo.res.pIconResInfo[i3].IdName)==0)
621 i4=i3+1;
622 }
623 if(i4==0&&ProjectInfo.pWindowInfo[i2].IconResName){
624 //アイコンが存在しない場合、無効にする
625 HeapDefaultFree(ProjectInfo.pWindowInfo[i2].IconResName);
626 ProjectInfo.pWindowInfo[i2].IconResName=0;
627 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
628 }
629 SendDlgItemMessage(hwnd,IDC_ICONRES,CB_SETCURSEL,i4,0);
630
631
632 ////////////
633 // スタイル
634 ////////////
635
636 //"オーバーラップ"
637 SendDlgItemMessage(hwnd,IDC_WINDOWSTYLE,CB_ADDSTRING,0,(long)STRING_WINDOWPROP_STYLE_OVERLAPPED);
638 //"ポップアップ"
639 SendDlgItemMessage(hwnd,IDC_WINDOWSTYLE,CB_ADDSTRING,0,(long)STRING_WINDOWPROP_STYLE_POPUP);
640 //"チャイルド"
641 SendDlgItemMessage(hwnd,IDC_WINDOWSTYLE,CB_ADDSTRING,0,(long)STRING_WINDOWPROP_STYLE_CHILD);
642
643 if(ProjectInfo.pWindowInfo[i2].style&WS_POPUP) SendDlgItemMessage(hwnd,IDC_WINDOWSTYLE,CB_SETCURSEL,1,0);
644 else if(ProjectInfo.pWindowInfo[i2].style&WS_CHILD) SendDlgItemMessage(hwnd,IDC_WINDOWSTYLE,CB_SETCURSEL,2,0);
645 else SendDlgItemMessage(hwnd,IDC_WINDOWSTYLE,CB_SETCURSEL,0,0);
646
647 //"枠なし"
648 SendDlgItemMessage(hwnd,IDC_BORDERSTYLE,CB_ADDSTRING,0,(long)STRING_WINDOWPROP_STYLE_FRAME_NONE);
649 //"細枠"
650 SendDlgItemMessage(hwnd,IDC_BORDERSTYLE,CB_ADDSTRING,0,(long)STRING_WINDOWPROP_STYLE_FRAME_THICK);
651 //"サイズ変更枠"
652 SendDlgItemMessage(hwnd,IDC_BORDERSTYLE,CB_ADDSTRING,0,(long)STRING_WINDOWPROP_STYLE_FRAME_BORDER);
653
654 //WS_CAPTION(WS_BORDER含む)を考慮してWS_THICKFRAMEを最初に比較する
655 if(ProjectInfo.pWindowInfo[i2].style&WS_THICKFRAME) SendDlgItemMessage(hwnd,IDC_BORDERSTYLE,CB_SETCURSEL,2,0);
656 else if(ProjectInfo.pWindowInfo[i2].style&WS_BORDER) SendDlgItemMessage(hwnd,IDC_BORDERSTYLE,CB_SETCURSEL,1,0);
657 else SendDlgItemMessage(hwnd,IDC_BORDERSTYLE,CB_SETCURSEL,0,0);
658
659 if(ProjectInfo.pWindowInfo[i2].style&WS_CAPTION) SendDlgItemMessage(hwnd,IDC_STYLE_CAPTION,BM_SETCHECK,BST_CHECKED,0);
660 if(ProjectInfo.pWindowInfo[i2].style&WS_SYSMENU) SendDlgItemMessage(hwnd,IDC_STYLE_SYSMENU,BM_SETCHECK,BST_CHECKED,0);
661 if(ProjectInfo.pWindowInfo[i2].style&WS_MINIMIZEBOX) SendDlgItemMessage(hwnd,IDC_STYLE_MINIMIZEBOX,BM_SETCHECK,BST_CHECKED,0);
662 if(ProjectInfo.pWindowInfo[i2].style&WS_MAXIMIZEBOX) SendDlgItemMessage(hwnd,IDC_STYLE_MAXIMIZEBOX,BM_SETCHECK,BST_CHECKED,0);
663 if(ProjectInfo.pWindowInfo[i2].style&WS_MINIMIZE) SendDlgItemMessage(hwnd,IDC_STYLE_MINIMIZE,BM_SETCHECK,BST_CHECKED,0);
664 if(ProjectInfo.pWindowInfo[i2].style&WS_MAXIMIZE) SendDlgItemMessage(hwnd,IDC_STYLE_MAXIMIZE,BM_SETCHECK,BST_CHECKED,0);
665 if(ProjectInfo.pWindowInfo[i2].style&WS_HSCROLL) SendDlgItemMessage(hwnd,IDC_STYLE_HSCROLLBAR,BM_SETCHECK,BST_CHECKED,0);
666 if(ProjectInfo.pWindowInfo[i2].style&WS_VSCROLL) SendDlgItemMessage(hwnd,IDC_STYLE_VSCROLLBAR,BM_SETCHECK,BST_CHECKED,0);
667 if(ProjectInfo.pWindowInfo[i2].style&WS_DISABLED) SendDlgItemMessage(hwnd,IDC_STYLE_DISABLED,BM_SETCHECK,BST_CHECKED,0);
668 if(ProjectInfo.pWindowInfo[i2].style&WS_CLIPSIBLINGS) SendDlgItemMessage(hwnd,IDC_STYLE_CLIPSIBLINGS,BM_SETCHECK,BST_CHECKED,0);
669 if(ProjectInfo.pWindowInfo[i2].style&WS_CLIPCHILDREN) SendDlgItemMessage(hwnd,IDC_STYLE_CLIPCHILDREN,BM_SETCHECK,BST_CHECKED,0);
670 if(ProjectInfo.pWindowInfo[i2].style&WS_VISIBLE) SendDlgItemMessage(hwnd,IDC_STYLE_VISIBLE,BM_SETCHECK,BST_CHECKED,0);
671
672 SetDlgItemText(hwnd,IDC_SETFONT,ProjectInfo.pWindowInfo[i2].LogFont.lfFaceName);
673
674 RadProperty_Window_Window_StylingOrder(hwnd,&ProjectInfo.pWindowInfo[i2].style);
675
676
677 //////////
678 //タイプ
679 switch(ProjectInfo.pWindowInfo[i2].type){
680 case WNDTYPE_DEFAULT:
681 SendDlgItemMessage(hwnd,IDC_DEFWINDOW,BM_SETCHECK,BST_CHECKED,0);
682 break;
683 case WNDTYPE_MODALDLG:
684 SendDlgItemMessage(hwnd,IDC_MODALDLG,BM_SETCHECK,BST_CHECKED,0);
685 break;
686 case WNDTYPE_MODELESSDLG:
687 SendDlgItemMessage(hwnd,IDC_MODELESSDLG,BM_SETCHECK,BST_CHECKED,0);
688 break;
689 }
690
691
692 bInitial=0;
693 break;
694 case WM_COMMAND:
695 switch(LOWORD(wParam)){
696 case IDC_RENAMEWINDOW:
697 if(!DialogBox(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_WINDOW_RENAME),hwnd,(DLGPROC)DlgRadProperty_Window_Rename)) return 1;
698 i=GetWndNum(GetParent(GetParent(hwnd)));
699 i2=GetWndInfoNum(MdiInfo[i].path);
700 SetDlgItemText(hwnd,IDC_WINDOWNAME,ProjectInfo.pWindowInfo[i2].name);
701 SetDlgItemText(hwnd,IDC_HANDLE,ProjectInfo.pWindowInfo[i2].HandleName);
702 return 1;
703 case IDC_RENAMECAPTION:
704 if(!DialogBox(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_ITEM_RENAMECAPTION),hwnd,(DLGPROC)DlgRadProperty_Item_RenameCaption)) return 1;
705 i=GetWndNum(GetParent(GetParent(hwnd)));
706 i2=GetWndInfoNum(MdiInfo[i].path);
707 SetDlgItemText(hwnd,IDC_CAPTION,ProjectInfo.pWindowInfo[i2].caption);
708 return 1;
709 case IDC_SETFONT:
710 i=GetWndNum(GetParent(GetParent(hwnd)));
711 i2=GetWndInfoNum(MdiInfo[i].path);
712 LOGFONT lf;
713 lf=ProjectInfo.pWindowInfo[i2].LogFont;
714 if(!SetFontDialog(hwnd,&ProjectInfo.pWindowInfo[i2].LogFont,0)) return 1;
715
716 //変更情報
717 Rad_NoticeChanging(i,RAD_UNDO_FONT,SELECT_WINDOW,(DWORD)&lf);
718
719 SetDlgItemText(hwnd,IDC_SETFONT,ProjectInfo.pWindowInfo[i2].LogFont.lfFaceName);
720 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
721 return 1;
722 case IDC_BGCOLOR:
723 if(HIWORD(wParam)==CBN_SELCHANGE){
724 i=GetWndNum(GetParent(GetParent(hwnd)));
725 i2=GetWndInfoNum(MdiInfo[i].path);
726
727 i3=SendDlgItemMessage(hwnd,IDC_BGCOLOR,CB_GETCURSEL,0,0);
728 if(i3==0){
729 //3DFACE
730
731 //変更情報
732 Rad_NoticeChanging(i,RAD_UNDO_BGCOLOR,SELECT_WINDOW,ProjectInfo.pWindowInfo[i2].bgColor);
733
734 ProjectInfo.pWindowInfo[i2].bgColor=COLOR_3DFACE;
735 }
736 else if(i3==1){
737 //色指定
738 CHOOSECOLOR cc;
739 COLORREF CusColors[16]={
740 RGB(255,255,255),
741 RGB(0,0,0),
742 RGB(128,128,128),
743 RGB(192,192,192),
744 RGB(128,0,0),
745 RGB(255,0,0),
746 RGB(128,128,0),
747 RGB(255,255,0),
748 RGB(0,128,0),
749 RGB(0,255,0),
750 RGB(0,128,128),
751 RGB(0,255,255),
752 RGB(0,0,128),
753 RGB(0,0,255),
754 RGB(128,0,128),
755 RGB(255,0,255)};
756 cc.lStructSize=sizeof(CHOOSECOLOR);
757 cc.hwndOwner=hwnd;
758 if(ProjectInfo.pWindowInfo[i2].bgColor<=0)
759 cc.rgbResult=-ProjectInfo.pWindowInfo[i2].bgColor;
760 else cc.rgbResult=RGB(255,255,255);
761 cc.lpCustColors=CusColors;
762 cc.Flags=CC_RGBINIT|CC_FULLOPEN;
763 if(!ChooseColor(&cc)){
764 //キャンセル動作
765 if(ProjectInfo.pWindowInfo[i2].bgColor==COLOR_3DFACE){
766 //3DFACE
767 SendDlgItemMessage(hwnd,IDC_BGCOLOR,CB_SETCURSEL,0,0);
768 }
769 else if(ProjectInfo.pWindowInfo[i2].bgColor<=0){
770 //色指定
771 SendDlgItemMessage(hwnd,IDC_BGCOLOR,CB_SETCURSEL,1,0);
772 }
773 else if(ProjectInfo.pWindowInfo[i2].bgColor>=0x1000){
774 //ビットマップ指定
775 SendDlgItemMessage(hwnd,IDC_BGCOLOR,CB_SETCURSEL,2+ProjectInfo.pWindowInfo[i2].bgColor-0x1000,0);
776 }
777 return 1;
778 }
779
780 //変更情報
781 Rad_NoticeChanging(i,RAD_UNDO_BGCOLOR,SELECT_WINDOW,ProjectInfo.pWindowInfo[i2].bgColor);
782
783 ProjectInfo.pWindowInfo[i2].bgColor=-(int)cc.rgbResult;
784 }
785 else{
786 //ビットマップ
787 i3-=2;
788
789 //変更情報
790 Rad_NoticeChanging(i,RAD_UNDO_BGCOLOR,SELECT_WINDOW,ProjectInfo.pWindowInfo[i2].bgColor);
791
792 ProjectInfo.pWindowInfo[i2].bgColor=0x1000+i3;
793 }
794 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
795 return 1;
796 }
797 break;
798 case IDC_WINDOWMENU:
799 if(HIWORD(wParam)==CBN_SELCHANGE){
800 i=GetWndNum(GetParent(GetParent(hwnd)));
801 i2=GetWndInfoNum(MdiInfo[i].path);
802
803 //変更情報
804 Rad_NoticeChanging(i,RAD_UNDO_WINDOWMENU,SELECT_WINDOW,(long)ProjectInfo.pWindowInfo[i2].MenuID);
805
806 i3=SendDlgItemMessage(hwnd,IDC_WINDOWMENU,CB_GETCURSEL,0,0);
807 if(ProjectInfo.pWindowInfo[i2].MenuID)
808 HeapDefaultFree(ProjectInfo.pWindowInfo[i2].MenuID);
809 if(i3==0) ProjectInfo.pWindowInfo[i2].MenuID=0;
810 else{
811 ProjectInfo.pWindowInfo[i2].MenuID=(char *)HeapAlloc(hHeap,0,SendDlgItemMessage(hwnd,IDC_WINDOWMENU,CB_GETLBTEXTLEN,i3,0)+1);
812 SendDlgItemMessage(hwnd,IDC_WINDOWMENU,CB_GETLBTEXT,i3,(long)ProjectInfo.pWindowInfo[i2].MenuID);
813 }
814 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
815 return 1;
816 }
817 break;
818 case IDC_ICONRES:
819 if(HIWORD(wParam)==CBN_SELCHANGE){
820 i=GetWndNum(GetParent(GetParent(hwnd)));
821 i2=GetWndInfoNum(MdiInfo[i].path);
822
823 //変更情報
824 Rad_NoticeChanging(i,RAD_UNDO_ICONRES,SELECT_WINDOW,(long)ProjectInfo.pWindowInfo[i2].IconResName);
825
826 i3=SendDlgItemMessage(hwnd,IDC_ICONRES,CB_GETCURSEL,0,0);
827 if(ProjectInfo.pWindowInfo[i2].IconResName)
828 HeapDefaultFree(ProjectInfo.pWindowInfo[i2].IconResName);
829 if(i3==0) ProjectInfo.pWindowInfo[i2].IconResName=0;
830 else{
831 ProjectInfo.pWindowInfo[i2].IconResName=(char *)HeapAlloc(hHeap,0,SendDlgItemMessage(hwnd,IDC_ICONRES,CB_GETLBTEXTLEN,i3,0)+1);
832 SendDlgItemMessage(hwnd,IDC_ICONRES,CB_GETLBTEXT,i3,(long)ProjectInfo.pWindowInfo[i2].IconResName);
833 }
834 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
835 return 1;
836 }
837 break;
838
839 case IDC_WINDOWSTYLE:
840 if(HIWORD(wParam)==CBN_SELCHANGE){
841 i=GetWndNum(GetParent(GetParent(hwnd)));
842 i2=GetWndInfoNum(MdiInfo[i].path);
843
844 //変更情報
845 Rad_NoticeChanging(i,RAD_UNDO_STYLE,SELECT_WINDOW,ProjectInfo.pWindowInfo[i2].style);
846
847 i3=SendDlgItemMessage(hwnd,IDC_WINDOWSTYLE,CB_GETCURSEL,0,0);
848 ProjectInfo.pWindowInfo[i2].style&=0x3FFFFFFF;
849 if(i3==1) ProjectInfo.pWindowInfo[i2].style|=WS_POPUP;
850 else if(i3==2) ProjectInfo.pWindowInfo[i2].style|=WS_CHILD;
851 RadProperty_Window_Window_StylingOrder(hwnd,&ProjectInfo.pWindowInfo[i2].style);
852 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
853 return 1;
854 }
855 break;
856 case IDC_BORDERSTYLE:
857 if(HIWORD(wParam)==CBN_SELCHANGE){
858 i=GetWndNum(GetParent(GetParent(hwnd)));
859 i2=GetWndInfoNum(MdiInfo[i].path);
860
861 //変更情報
862 Rad_NoticeChanging(i,RAD_UNDO_STYLE,SELECT_WINDOW,ProjectInfo.pWindowInfo[i2].style);
863
864 i3=SendDlgItemMessage(hwnd,IDC_BORDERSTYLE,CB_GETCURSEL,0,0);
865 ProjectInfo.pWindowInfo[i2].style&=~(WS_BORDER|WS_THICKFRAME);
866 if(i3==1) ProjectInfo.pWindowInfo[i2].style|=WS_BORDER;
867 else if(i3==2){
868 ProjectInfo.pWindowInfo[i2].style|=WS_BORDER;
869 ProjectInfo.pWindowInfo[i2].style|=WS_THICKFRAME;
870 }
871 RadProperty_Window_Border_StylingOrder(hwnd,&ProjectInfo.pWindowInfo[i2].style);
872 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
873 return 1;
874 }
875 break;
876
877 case IDC_STYLE_CAPTION:
878 if(HIWORD(wParam)==BN_CLICKED){
879 i=GetWndNum(GetParent(GetParent(hwnd)));
880 i2=GetWndInfoNum(MdiInfo[i].path);
881
882 //変更情報
883 Rad_NoticeChanging(i,RAD_UNDO_STYLE,SELECT_WINDOW,ProjectInfo.pWindowInfo[i2].style);
884
885 if(SendDlgItemMessage(hwnd,IDC_STYLE_CAPTION,BM_GETCHECK,0,0))
886 ProjectInfo.pWindowInfo[i2].style|=WS_CAPTION;
887 else
888 ProjectInfo.pWindowInfo[i2].style&=~WS_CAPTION;
889 RadProperty_Window_Caption_StylingOrder(hwnd,&ProjectInfo.pWindowInfo[i2].style);
890 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
891 return 1;
892 }
893 break;
894 case IDC_STYLE_SYSMENU:
895 if(HIWORD(wParam)==BN_CLICKED){
896 i=GetWndNum(GetParent(GetParent(hwnd)));
897 i2=GetWndInfoNum(MdiInfo[i].path);
898
899 //変更情報
900 Rad_NoticeChanging(i,RAD_UNDO_STYLE,SELECT_WINDOW,ProjectInfo.pWindowInfo[i2].style);
901
902 if(SendDlgItemMessage(hwnd,IDC_STYLE_SYSMENU,BM_GETCHECK,0,0))
903 ProjectInfo.pWindowInfo[i2].style|=WS_SYSMENU;
904 else
905 ProjectInfo.pWindowInfo[i2].style&=~WS_SYSMENU;
906 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
907 return 1;
908 }
909 break;
910 case IDC_STYLE_MINIMIZEBOX:
911 if(HIWORD(wParam)==BN_CLICKED){
912 i=GetWndNum(GetParent(GetParent(hwnd)));
913 i2=GetWndInfoNum(MdiInfo[i].path);
914
915 //変更情報
916 Rad_NoticeChanging(i,RAD_UNDO_STYLE,SELECT_WINDOW,ProjectInfo.pWindowInfo[i2].style);
917
918 if(SendDlgItemMessage(hwnd,IDC_STYLE_MINIMIZEBOX,BM_GETCHECK,0,0))
919 ProjectInfo.pWindowInfo[i2].style|=WS_MINIMIZEBOX;
920 else
921 ProjectInfo.pWindowInfo[i2].style&=~WS_MINIMIZEBOX;
922 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
923 return 1;
924 }
925 break;
926 case IDC_STYLE_MAXIMIZEBOX:
927 if(HIWORD(wParam)==BN_CLICKED){
928 i=GetWndNum(GetParent(GetParent(hwnd)));
929 i2=GetWndInfoNum(MdiInfo[i].path);
930
931 //変更情報
932 Rad_NoticeChanging(i,RAD_UNDO_STYLE,SELECT_WINDOW,ProjectInfo.pWindowInfo[i2].style);
933
934 if(SendDlgItemMessage(hwnd,IDC_STYLE_MAXIMIZEBOX,BM_GETCHECK,0,0))
935 ProjectInfo.pWindowInfo[i2].style|=WS_MAXIMIZEBOX;
936 else
937 ProjectInfo.pWindowInfo[i2].style&=~WS_MAXIMIZEBOX;
938 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
939 return 1;
940 }
941 break;
942 case IDC_STYLE_MINIMIZE:
943 if(HIWORD(wParam)==BN_CLICKED){
944 i=GetWndNum(GetParent(GetParent(hwnd)));
945 i2=GetWndInfoNum(MdiInfo[i].path);
946
947 //変更情報
948 Rad_NoticeChanging(i,RAD_UNDO_STYLE,SELECT_WINDOW,ProjectInfo.pWindowInfo[i2].style);
949
950 if(SendDlgItemMessage(hwnd,IDC_STYLE_MINIMIZE,BM_GETCHECK,0,0))
951 ProjectInfo.pWindowInfo[i2].style|=WS_MINIMIZE;
952 else
953 ProjectInfo.pWindowInfo[i2].style&=~WS_MINIMIZE;
954 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
955 return 1;
956 }
957 break;
958 case IDC_STYLE_MAXIMIZE:
959 if(HIWORD(wParam)==BN_CLICKED){
960 i=GetWndNum(GetParent(GetParent(hwnd)));
961 i2=GetWndInfoNum(MdiInfo[i].path);
962
963 //変更情報
964 Rad_NoticeChanging(i,RAD_UNDO_STYLE,SELECT_WINDOW,ProjectInfo.pWindowInfo[i2].style);
965
966 if(SendDlgItemMessage(hwnd,IDC_STYLE_MAXIMIZE,BM_GETCHECK,0,0))
967 ProjectInfo.pWindowInfo[i2].style|=WS_MAXIMIZE;
968 else
969 ProjectInfo.pWindowInfo[i2].style&=~WS_MAXIMIZE;
970 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
971 return 1;
972 }
973 case IDC_STYLE_HSCROLLBAR:
974 if(HIWORD(wParam)==BN_CLICKED){
975 i=GetWndNum(GetParent(GetParent(hwnd)));
976 i2=GetWndInfoNum(MdiInfo[i].path);
977
978 //変更情報
979 Rad_NoticeChanging(i,RAD_UNDO_STYLE,SELECT_WINDOW,ProjectInfo.pWindowInfo[i2].style);
980
981 if(SendDlgItemMessage(hwnd,IDC_STYLE_HSCROLLBAR,BM_GETCHECK,0,0))
982 ProjectInfo.pWindowInfo[i2].style|=WS_HSCROLL;
983 else
984 ProjectInfo.pWindowInfo[i2].style&=~WS_HSCROLL;
985 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
986 return 1;
987 }
988 case IDC_STYLE_VSCROLLBAR:
989 if(HIWORD(wParam)==BN_CLICKED){
990 i=GetWndNum(GetParent(GetParent(hwnd)));
991 i2=GetWndInfoNum(MdiInfo[i].path);
992
993 //変更情報
994 Rad_NoticeChanging(i,RAD_UNDO_STYLE,SELECT_WINDOW,ProjectInfo.pWindowInfo[i2].style);
995
996 if(SendDlgItemMessage(hwnd,IDC_STYLE_VSCROLLBAR,BM_GETCHECK,0,0))
997 ProjectInfo.pWindowInfo[i2].style|=WS_VSCROLL;
998 else
999 ProjectInfo.pWindowInfo[i2].style&=~WS_VSCROLL;
1000 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
1001 return 1;
1002 }
1003 break;
1004 case IDC_STYLE_DISABLED:
1005 if(HIWORD(wParam)==BN_CLICKED){
1006 i=GetWndNum(GetParent(GetParent(hwnd)));
1007 i2=GetWndInfoNum(MdiInfo[i].path);
1008
1009 //変更情報
1010 Rad_NoticeChanging(i,RAD_UNDO_STYLE,SELECT_WINDOW,ProjectInfo.pWindowInfo[i2].style);
1011
1012 if(SendDlgItemMessage(hwnd,IDC_STYLE_DISABLED,BM_GETCHECK,0,0))
1013 ProjectInfo.pWindowInfo[i2].style|=WS_DISABLED;
1014 else
1015 ProjectInfo.pWindowInfo[i2].style&=~WS_DISABLED;
1016 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
1017 return 1;
1018 }
1019 break;
1020 case IDC_STYLE_CLIPSIBLINGS:
1021 if(HIWORD(wParam)==BN_CLICKED){
1022 i=GetWndNum(GetParent(GetParent(hwnd)));
1023 i2=GetWndInfoNum(MdiInfo[i].path);
1024
1025 //変更情報
1026 Rad_NoticeChanging(i,RAD_UNDO_STYLE,SELECT_WINDOW,ProjectInfo.pWindowInfo[i2].style);
1027
1028 if(SendDlgItemMessage(hwnd,IDC_STYLE_CLIPSIBLINGS,BM_GETCHECK,0,0))
1029 ProjectInfo.pWindowInfo[i2].style|=WS_CLIPSIBLINGS;
1030 else
1031 ProjectInfo.pWindowInfo[i2].style&=~WS_CLIPSIBLINGS;
1032 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
1033 return 1;
1034 }
1035 break;
1036 case IDC_STYLE_CLIPCHILDREN:
1037 if(HIWORD(wParam)==BN_CLICKED){
1038 i=GetWndNum(GetParent(GetParent(hwnd)));
1039 i2=GetWndInfoNum(MdiInfo[i].path);
1040
1041 //変更情報
1042 Rad_NoticeChanging(i,RAD_UNDO_STYLE,SELECT_WINDOW,ProjectInfo.pWindowInfo[i2].style);
1043
1044 if(SendDlgItemMessage(hwnd,IDC_STYLE_CLIPCHILDREN,BM_GETCHECK,0,0))
1045 ProjectInfo.pWindowInfo[i2].style|=WS_CLIPCHILDREN;
1046 else
1047 ProjectInfo.pWindowInfo[i2].style&=~WS_CLIPCHILDREN;
1048 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
1049 return 1;
1050 }
1051 break;
1052 case IDC_STYLE_VISIBLE:
1053 if(HIWORD(wParam)==BN_CLICKED){
1054 i=GetWndNum(GetParent(GetParent(hwnd)));
1055 i2=GetWndInfoNum(MdiInfo[i].path);
1056
1057 //変更情報
1058 Rad_NoticeChanging(i,RAD_UNDO_STYLE,SELECT_WINDOW,ProjectInfo.pWindowInfo[i2].style);
1059
1060 if(SendDlgItemMessage(hwnd,IDC_STYLE_VISIBLE,BM_GETCHECK,0,0))
1061 ProjectInfo.pWindowInfo[i2].style|=WS_VISIBLE;
1062 else
1063 ProjectInfo.pWindowInfo[i2].style&=~WS_VISIBLE;
1064 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
1065 return 1;
1066 }
1067 break;
1068
1069 case IDC_EXSTYLE:
1070 if(!DialogBox(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_WINDOW_EXSTYLE),hwnd,(DLGPROC)DlgRadProperty_Window_ExStyle)) return 1;
1071 i=GetWndNum(GetParent(GetParent(hwnd)));
1072 i2=GetWndInfoNum(MdiInfo[i].path);
1073 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
1074 return 1;
1075
1076 case IDC_DEFWINDOW:
1077 case IDC_MODALDLG:
1078 case IDC_MODELESSDLG:
1079 if(HIWORD(wParam)==BN_CLICKED){
1080 i=GetWndNum(GetParent(GetParent(hwnd)));
1081 i2=GetWndInfoNum(MdiInfo[i].path);
1082
1083 //変更情報
1084 Rad_NoticeChanging(i,RAD_UNDO_TYPE,SELECT_WINDOW,ProjectInfo.pWindowInfo[i2].type);
1085
1086 if(SendDlgItemMessage(hwnd,IDC_DEFWINDOW,BM_GETCHECK,0,0))
1087 ProjectInfo.pWindowInfo[i2].type=WNDTYPE_DEFAULT;
1088 else if(SendDlgItemMessage(hwnd,IDC_MODALDLG,BM_GETCHECK,0,0))
1089 ProjectInfo.pWindowInfo[i2].type=WNDTYPE_MODALDLG;
1090 else if(SendDlgItemMessage(hwnd,IDC_MODELESSDLG,BM_GETCHECK,0,0))
1091 ProjectInfo.pWindowInfo[i2].type=WNDTYPE_MODELESSDLG;
1092 return 1;
1093 }
1094 break;
1095 }
1096 break;
1097 }
1098 return 0;
1099}
1100
1101BOOL CALLBACK DlgRadProperty_Item_RenameCaption(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
1102 extern HANDLE hHeap;
1103 extern MDIINFO MdiInfo[MAX_WNDNUM];
1104 extern PROJECTINFO ProjectInfo;
1105 int i,i2,i3;
1106 char *temporary;
1107 POINTANDSIZE PointAndSize;
1108
1109 switch(message){
1110 case WM_INITDIALOG:
1111 SetPosCenter(hwnd);
1112 i=GetWndNum(GetWindow(hClient,GW_CHILD));
1113 i2=GetWndInfoNum(MdiInfo[i].path);
1114 if(MdiInfo[i].MdiRadInfo->SelectingItem[0]==SELECT_WINDOW)
1115 SetDlgItemText(hwnd,IDC_CAPTION,ProjectInfo.pWindowInfo[i2].caption);
1116 else
1117 SetDlgItemText(hwnd,IDC_CAPTION,ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].caption);
1118 break;
1119 case WM_COMMAND:
1120 switch(LOWORD(wParam)){
1121 case IDOK:
1122 i=GetWndNum(GetWindow(hClient,GW_CHILD));
1123 i2=GetWndInfoNum(MdiInfo[i].path);
1124
1125 i3=GetWindowTextLength(GetDlgItem(hwnd,IDC_CAPTION))+1;
1126 temporary=(char *)HeapAlloc(hHeap,0,i3);
1127 GetDlgItemText(hwnd,IDC_CAPTION,temporary,i3);
1128 if(MdiInfo[i].MdiRadInfo->SelectingItem[0]==SELECT_WINDOW){
1129 if(lstrcmp(temporary,ProjectInfo.pWindowInfo[i2].caption)==0){
1130 HeapDefaultFree(temporary);
1131 SendMessage(hwnd,WM_COMMAND,IDCANCEL,0);
1132 return 1;
1133 }
1134
1135 //変更情報を更新
1136 Rad_NoticeChanging(i,RAD_UNDO_CAPTION,MdiInfo[i].MdiRadInfo->SelectingItem[0],(DWORD)ProjectInfo.pWindowInfo[i2].caption);
1137
1138 HeapDefaultFree(ProjectInfo.pWindowInfo[i2].caption);
1139 ProjectInfo.pWindowInfo[i2].caption=temporary;
1140 }
1141 else{
1142 if(lstrcmp(temporary,ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].caption)==0){
1143 HeapDefaultFree(temporary);
1144 SendMessage(hwnd,WM_COMMAND,IDCANCEL,0);
1145 return 1;
1146 }
1147
1148 //変更情報を更新
1149 Rad_NoticeChanging(i,RAD_UNDO_CAPTION,MdiInfo[i].MdiRadInfo->SelectingItem[0],(DWORD)ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].caption);
1150
1151 HeapDefaultFree(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].caption);
1152 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].caption=temporary;
1153
1154 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].Control==CT_STATIC){
1155 //スタティック テキスト
1156 //テキストが表示できるようにサイズを拡大する
1157
1158 PointAndSize.pos=ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].pos;
1159 PointAndSize.size=ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].size;
1160 Rad_NoticeChanging(i,RAD_UNDO_POSITION,MdiInfo[i].MdiRadInfo->SelectingItem[0],(DWORD)&PointAndSize);
1161
1162 HFONT hFont,hOldFont;
1163 hFont=CreateFontIndirect(&ProjectInfo.pWindowInfo[i2].LogFont);
1164 hOldFont=(HFONT)SelectObject(MdiInfo[i].MdiRadInfo->hMemDC,hFont);
1165 GetTextExtentPoint32(MdiInfo[i].MdiRadInfo->hMemDC,temporary,lstrlen(temporary),&PointAndSize.size);
1166 SelectObject(MdiInfo[i].MdiRadInfo->hMemDC,hOldFont);
1167 DeleteObject(hFont);
1168
1169 //テキストの終端に余裕を持たせる
1170 PointAndSize.size.cx+=5;
1171
1172 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].size.cx<PointAndSize.size.cx)
1173 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].size.cx=PointAndSize.size.cx;
1174 }
1175 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].Control==CT_CHECKBOX){
1176 //チェック ボックス
1177 //テキストが表示できるようにサイズを拡大する
1178
1179 PointAndSize.pos=ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].pos;
1180 PointAndSize.size=ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].size;
1181 Rad_NoticeChanging(i,RAD_UNDO_POSITION,MdiInfo[i].MdiRadInfo->SelectingItem[0],(DWORD)&PointAndSize);
1182
1183 HFONT hFont,hOldFont;
1184 hFont=CreateFontIndirect(&ProjectInfo.pWindowInfo[i2].LogFont);
1185 hOldFont=(HFONT)SelectObject(MdiInfo[i].MdiRadInfo->hMemDC,hFont);
1186 GetTextExtentPoint32(MdiInfo[i].MdiRadInfo->hMemDC,temporary,lstrlen(temporary),&PointAndSize.size);
1187 SelectObject(MdiInfo[i].MdiRadInfo->hMemDC,hOldFont);
1188 DeleteObject(hFont);
1189
1190 //テキストの終端に余裕を持たせる
1191 PointAndSize.size.cx+=21;
1192
1193 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].size.cx<PointAndSize.size.cx)
1194 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].size.cx=PointAndSize.size.cx;
1195 }
1196 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].Control==CT_RADIOBUTTON){
1197 //ラジオ ボックス
1198 //テキストが表示できるようにサイズを拡大する
1199
1200 PointAndSize.pos=ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].pos;
1201 PointAndSize.size=ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].size;
1202 Rad_NoticeChanging(i,RAD_UNDO_POSITION,MdiInfo[i].MdiRadInfo->SelectingItem[0],(DWORD)&PointAndSize);
1203
1204 HFONT hFont,hOldFont;
1205 hFont=CreateFontIndirect(&ProjectInfo.pWindowInfo[i2].LogFont);
1206 hOldFont=(HFONT)SelectObject(MdiInfo[i].MdiRadInfo->hMemDC,hFont);
1207 GetTextExtentPoint32(MdiInfo[i].MdiRadInfo->hMemDC,temporary,lstrlen(temporary),&PointAndSize.size);
1208 SelectObject(MdiInfo[i].MdiRadInfo->hMemDC,hOldFont);
1209 DeleteObject(hFont);
1210
1211 //テキストの終端に余裕を持たせる
1212 PointAndSize.size.cx+=20;
1213
1214 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].size.cx<PointAndSize.size.cx)
1215 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].size.cx=PointAndSize.size.cx;
1216 }
1217 }
1218 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
1219 EndDialog(hwnd,1);
1220 return 1;
1221 case IDCANCEL:
1222 EndDialog(hwnd,0);
1223 return 1;
1224 }
1225 break;
1226 }
1227 return 0;
1228}
1229BOOL CALLBACK DlgRadProperty_Item_RenameID(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
1230 extern HANDLE hHeap;
1231 extern HWND hClient,hOwner;
1232 extern MDIINFO MdiInfo[MAX_WNDNUM];
1233 extern PROJECTINFO ProjectInfo;
1234 int i,i2,i3;
1235 char *temporary;
1236
1237 switch(message){
1238 case WM_INITDIALOG:
1239 SetPosCenter(hwnd);
1240 i=GetWndNum(GetWindow(hClient,GW_CHILD));
1241 i2=GetWndInfoNum(MdiInfo[i].path);
1242 SetDlgItemText(hwnd,IDC_IDNAME,ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].IdName);
1243 break;
1244 case WM_COMMAND:
1245 switch(LOWORD(wParam)){
1246 case IDOK:
1247 i=GetWndNum(GetWindow(hClient,GW_CHILD));
1248 i2=GetWndInfoNum(MdiInfo[i].path);
1249
1250 i3=GetWindowTextLength(GetDlgItem(hwnd,IDC_IDNAME))+1;
1251 if(i3==1){
1252 //MsgBox "ID名を入力して下さい。"
1253 MessageBox(hOwner,STRING_ITEM_RENAME_MUST_ID,APPLICATION_NAME,MB_OK|MB_ICONEXCLAMATION);
1254 break;
1255 }
1256 temporary=(char *)HeapAlloc(hHeap,0,i3);
1257 GetDlgItemText(hwnd,IDC_IDNAME,temporary,i3);
1258 if(lstrcmp(temporary,ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].IdName)==0){
1259 HeapDefaultFree(temporary);
1260 SendMessage(hwnd,WM_COMMAND,IDCANCEL,0);
1261 return 1;
1262 }
1263
1264 //MsgBox "アイテムのID名を変更すると、ソースコード内のID名は手動で変換する必要があります。変更しますか?"
1265 if(IDCANCEL==MessageBox(hwnd,STRING_ITEM_RENAME_CHECK,APPLICATION_NAME,MB_OKCANCEL|MB_ICONEXCLAMATION)) return 1;
1266
1267 //変更情報を更新
1268 Rad_NoticeChanging(i,RAD_UNDO_NAME,MdiInfo[i].MdiRadInfo->SelectingItem[0],(DWORD)ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].IdName);
1269
1270 HeapDefaultFree(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].IdName);
1271 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].IdName=temporary;
1272
1273 EndDialog(hwnd,1);
1274 return 1;
1275 case IDCANCEL:
1276 EndDialog(hwnd,0);
1277 return 1;
1278 }
1279 break;
1280 }
1281 return 0;
1282}
1283BOOL DefaultItemStyles(HWND hwnd,int WndNum,int WndInfoNum,WPARAM wParam){
1284 extern HANDLE hHeap;
1285 extern MDIINFO MdiInfo[MAX_WNDNUM];
1286 extern PROJECTINFO ProjectInfo;
1287
1288 switch(LOWORD(wParam)){
1289 case IDC_RENAMEID:
1290 if(!DialogBox(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_ITEM_RENAMEID),hwnd,(DLGPROC)DlgRadProperty_Item_RenameID)) return 1;
1291 SetDlgItemText(hwnd,IDC_IDNAME,ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]].IdName);
1292 return 1;
1293 case IDC_RENAMECAPTION:
1294 if(!DialogBox(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_ITEM_RENAMECAPTION),hwnd,(DLGPROC)DlgRadProperty_Item_RenameCaption)) return 1;
1295 SetDlgItemText(hwnd,IDC_CAPTION,ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]].caption);
1296 return 1;
1297 case IDC_STYLE_DISABLED:
1298 if(HIWORD(wParam)==BN_CLICKED){
1299 //変更情報
1300 Rad_NoticeChanging(WndNum,RAD_UNDO_STYLE,MdiInfo[WndNum].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]].style);
1301
1302 if(SendDlgItemMessage(hwnd,IDC_STYLE_DISABLED,BM_GETCHECK,0,0))
1303 ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]].style|=WS_DISABLED;
1304 else
1305 ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]].style&=~WS_DISABLED;
1306 DrawRadWindow(WndNum,&ProjectInfo.pWindowInfo[WndInfoNum]);
1307 return 1;
1308 }
1309 break;
1310 case IDC_STYLE_VISIBLE:
1311 if(HIWORD(wParam)==BN_CLICKED){
1312 //変更情報
1313 Rad_NoticeChanging(WndNum,RAD_UNDO_STYLE,MdiInfo[WndNum].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]].style);
1314
1315 if(SendDlgItemMessage(hwnd,IDC_STYLE_VISIBLE,BM_GETCHECK,0,0))
1316 ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]].style|=WS_VISIBLE;
1317 else
1318 ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]].style&=~WS_VISIBLE;
1319 return 1;
1320 }
1321 break;
1322 case IDC_STYLE_GROUP:
1323 if(HIWORD(wParam)==BN_CLICKED){
1324 //変更情報
1325 Rad_NoticeChanging(WndNum,RAD_UNDO_STYLE,MdiInfo[WndNum].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]].style);
1326
1327 if(SendDlgItemMessage(hwnd,IDC_STYLE_GROUP,BM_GETCHECK,0,0))
1328 ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]].style|=WS_GROUP;
1329 else
1330 ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]].style&=~WS_GROUP;
1331 return 1;
1332 }
1333 break;
1334 case IDC_STYLE_TABSTOP:
1335 if(HIWORD(wParam)==BN_CLICKED){
1336 //変更情報
1337 Rad_NoticeChanging(WndNum,RAD_UNDO_STYLE,MdiInfo[WndNum].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]].style);
1338
1339 if(SendDlgItemMessage(hwnd,IDC_STYLE_TABSTOP,BM_GETCHECK,0,0))
1340 ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]].style|=WS_TABSTOP;
1341 else
1342 ProjectInfo.pWindowInfo[WndInfoNum].pChildInfo[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]].style&=~WS_TABSTOP;
1343 return 1;
1344 }
1345 break;
1346 }
1347 return 0;
1348}
1349BOOL CALLBACK DlgRadProperty_Item_ExStyle(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
1350 extern MDIINFO MdiInfo[MAX_WNDNUM];
1351 extern PROJECTINFO ProjectInfo;
1352 int i,i2;
1353
1354 switch(message){
1355 case WM_INITDIALOG:
1356 SetPosCenter(hwnd);
1357 i=GetWndNum(GetWindow(hClient,GW_CHILD));
1358 i2=GetWndInfoNum(MdiInfo[i].path);
1359 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].ExStyle&WS_EX_ACCEPTFILES) SendDlgItemMessage(hwnd,IDC_EXSTYLE_ACCEPTFILES,BM_SETCHECK,BST_CHECKED,0);
1360 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].ExStyle&WS_EX_TRANSPARENT) SendDlgItemMessage(hwnd,IDC_EXSTYLE_TRANSPARENT,BM_SETCHECK,BST_CHECKED,0);
1361 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].ExStyle&WS_EX_DLGMODALFRAME) SendDlgItemMessage(hwnd,IDC_EXSTYLE_DLGMODALFRAME,BM_SETCHECK,BST_CHECKED,0);
1362 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].ExStyle&WS_EX_CLIENTEDGE) SendDlgItemMessage(hwnd,IDC_EXSTYLE_CLIENTEDGE,BM_SETCHECK,BST_CHECKED,0);
1363 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].ExStyle&WS_EX_STATICEDGE) SendDlgItemMessage(hwnd,IDC_EXSTYLE_STATICEDGE,BM_SETCHECK,BST_CHECKED,0);
1364 break;
1365 case WM_COMMAND:
1366 switch(LOWORD(wParam)){
1367 case IDOK:
1368 i=GetWndNum(GetWindow(hClient,GW_CHILD));
1369 i2=GetWndInfoNum(MdiInfo[i].path);
1370
1371 DWORD style;
1372 style=0;
1373 if(SendDlgItemMessage(hwnd,IDC_EXSTYLE_ACCEPTFILES,BM_GETCHECK,0,0))
1374 style|=WS_EX_ACCEPTFILES;
1375 if(SendDlgItemMessage(hwnd,IDC_EXSTYLE_TRANSPARENT,BM_GETCHECK,0,0))
1376 style|=WS_EX_TRANSPARENT;
1377 if(SendDlgItemMessage(hwnd,IDC_EXSTYLE_DLGMODALFRAME,BM_GETCHECK,0,0))
1378 style|=WS_EX_DLGMODALFRAME;
1379 if(SendDlgItemMessage(hwnd,IDC_EXSTYLE_CLIENTEDGE,BM_GETCHECK,0,0))
1380 style|=WS_EX_CLIENTEDGE;
1381 if(SendDlgItemMessage(hwnd,IDC_EXSTYLE_STATICEDGE,BM_GETCHECK,0,0))
1382 style|=WS_EX_STATICEDGE;
1383
1384 if(style==ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].ExStyle){
1385 SendMessage(hwnd,WM_COMMAND,IDCANCEL,0);
1386 return 1;
1387 }
1388
1389 //変更情報
1390 Rad_NoticeChanging(i,RAD_UNDO_EXSTYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].ExStyle);
1391
1392 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].ExStyle=style;
1393 EndDialog(hwnd,1);
1394 return 1;
1395 case IDCANCEL:
1396 EndDialog(hwnd,0);
1397 return 1;
1398 }
1399 break;
1400 }
1401 return 0;
1402}
1403
1404
1405/////////////////////
1406// BUTTON プロパティ
1407
1408BOOL CALLBACK RadProperty_ButtonProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
1409 extern MDIINFO MdiInfo[MAX_WNDNUM];
1410 extern PROJECTINFO ProjectInfo;
1411 int i,i2,i3;
1412 static BOOL bInitial;
1413
1414 switch(message){
1415 case WM_INITDIALOG:
1416 bInitial=1;
1417 i=GetWndNum(GetParent(GetParent(hwnd)));
1418 i2=GetWndInfoNum(MdiInfo[i].path);
1419
1420 SetDlgItemText(hwnd,IDC_IDNAME,ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].IdName);
1421 SetDlgItemText(hwnd,IDC_CAPTION,ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].caption);
1422
1423
1424 ////////////
1425 //スタイル
1426
1427 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&WS_DISABLED) SendDlgItemMessage(hwnd,IDC_STYLE_DISABLED,BM_SETCHECK,BST_CHECKED,0);
1428 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&WS_VISIBLE) SendDlgItemMessage(hwnd,IDC_STYLE_VISIBLE,BM_SETCHECK,BST_CHECKED,0);
1429 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&WS_GROUP) SendDlgItemMessage(hwnd,IDC_STYLE_GROUP,BM_SETCHECK,BST_CHECKED,0);
1430 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&WS_TABSTOP) SendDlgItemMessage(hwnd,IDC_STYLE_TABSTOP,BM_SETCHECK,BST_CHECKED,0);
1431
1432 if((ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&BS_OWNERDRAW)==BS_OWNERDRAW) SendDlgItemMessage(hwnd,IDC_BS_OWNERDRAW,BM_SETCHECK,BST_CHECKED,0);
1433 else if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&BS_DEFPUSHBUTTON) SendDlgItemMessage(hwnd,IDC_BS_DEFPUSHBUTTON,BM_SETCHECK,BST_CHECKED,0);
1434
1435 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&BS_ICON) SendDlgItemMessage(hwnd,IDC_BS_ICON,BM_SETCHECK,BST_CHECKED,0);
1436 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&BS_BITMAP) SendDlgItemMessage(hwnd,IDC_BS_BITMAP,BM_SETCHECK,BST_CHECKED,0);
1437 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&BS_MULTILINE) SendDlgItemMessage(hwnd,IDC_BS_MULTILINE,BM_SETCHECK,BST_CHECKED,0);
1438 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&BS_NOTIFY) SendDlgItemMessage(hwnd,IDC_BS_NOTIFY,BM_SETCHECK,BST_CHECKED,0);
1439
1440
1441 //////////////////
1442 // 水平方向の配置
1443 //////////////////
1444
1445 //"デフォルト"
1446 SendDlgItemMessage(hwnd,IDC_BS_HPOS,CB_ADDSTRING,0,(long)STRING_DEFAULT);
1447 //"左端"
1448 SendDlgItemMessage(hwnd,IDC_BS_HPOS,CB_ADDSTRING,0,(long)STRING_LEFT);
1449 //"右端"
1450 SendDlgItemMessage(hwnd,IDC_BS_HPOS,CB_ADDSTRING,0,(long)STRING_RIGHT);
1451 //"中央"
1452 SendDlgItemMessage(hwnd,IDC_BS_HPOS,CB_ADDSTRING,0,(long)STRING_CENTER);
1453
1454 //ビットを考慮してBS_CENTERを最初に比較する
1455 if((ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&BS_CENTER)==BS_CENTER) SendDlgItemMessage(hwnd,IDC_BS_HPOS,CB_SETCURSEL,3,0);
1456 else if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&BS_LEFT) SendDlgItemMessage(hwnd,IDC_BS_HPOS,CB_SETCURSEL,1,0);
1457 else if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&BS_RIGHT) SendDlgItemMessage(hwnd,IDC_BS_HPOS,CB_SETCURSEL,2,0);
1458 else SendDlgItemMessage(hwnd,IDC_BS_HPOS,CB_SETCURSEL,0,0);
1459
1460
1461 //////////////////
1462 // 垂直方向の配置
1463 //////////////////
1464
1465 //"デフォルト"
1466 SendDlgItemMessage(hwnd,IDC_BS_VPOS,CB_ADDSTRING,0,(long)STRING_DEFAULT);
1467 //"上端"
1468 SendDlgItemMessage(hwnd,IDC_BS_VPOS,CB_ADDSTRING,0,(long)STRING_TOP);
1469 //"下端"
1470 SendDlgItemMessage(hwnd,IDC_BS_VPOS,CB_ADDSTRING,0,(long)STRING_BOTTOM);
1471 //"中央"
1472 SendDlgItemMessage(hwnd,IDC_BS_VPOS,CB_ADDSTRING,0,(long)STRING_CENTER);
1473
1474 //ビットを考慮してBS_VCENTERを最初に比較する
1475 if((ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&BS_VCENTER)==BS_VCENTER) SendDlgItemMessage(hwnd,IDC_BS_VPOS,CB_SETCURSEL,3,0);
1476 else if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&BS_TOP) SendDlgItemMessage(hwnd,IDC_BS_VPOS,CB_SETCURSEL,1,0);
1477 else if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&BS_BOTTOM) SendDlgItemMessage(hwnd,IDC_BS_VPOS,CB_SETCURSEL,2,0);
1478 else SendDlgItemMessage(hwnd,IDC_BS_VPOS,CB_SETCURSEL,0,0);
1479
1480
1481 bInitial=0;
1482 break;
1483 case WM_COMMAND:
1484
1485 i=GetWndNum(GetParent(GetParent(hwnd)));
1486 if(i==-1) return 1;
1487 i2=GetWndInfoNum(MdiInfo[i].path);
1488
1489 //共通スタイル
1490 if(bInitial==0){
1491 if(DefaultItemStyles(hwnd,i,i2,wParam)) return 1;
1492 }
1493
1494 switch(LOWORD(wParam)){
1495 case IDC_BS_DEFPUSHBUTTON:
1496 if(HIWORD(wParam)==BN_CLICKED){
1497 //変更情報
1498 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
1499
1500 if(SendDlgItemMessage(hwnd,IDC_BS_DEFPUSHBUTTON,BM_GETCHECK,0,0)){
1501 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~BS_OWNERDRAW;
1502 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=BS_DEFPUSHBUTTON;
1503 SendDlgItemMessage(hwnd,IDC_BS_OWNERDRAW,BM_SETCHECK,BST_UNCHECKED,0);
1504 }
1505 else
1506 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~BS_DEFPUSHBUTTON;
1507 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
1508 return 1;
1509 }
1510 break;
1511 case IDC_BS_OWNERDRAW:
1512 if(HIWORD(wParam)==BN_CLICKED){
1513 //変更情報
1514 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
1515
1516 if(SendDlgItemMessage(hwnd,IDC_BS_OWNERDRAW,BM_GETCHECK,0,0)){
1517 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~BS_DEFPUSHBUTTON;
1518 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=BS_OWNERDRAW;
1519 SendDlgItemMessage(hwnd,IDC_BS_DEFPUSHBUTTON,BM_SETCHECK,BST_UNCHECKED,0);
1520 }
1521 else
1522 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~BS_OWNERDRAW;
1523 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
1524 return 1;
1525 }
1526 break;
1527 case IDC_BS_ICON:
1528 if(HIWORD(wParam)==BN_CLICKED){
1529 //変更情報
1530 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
1531
1532 if(SendDlgItemMessage(hwnd,IDC_BS_ICON,BM_GETCHECK,0,0)){
1533 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=BS_ICON;
1534 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~BS_BITMAP;
1535 SendDlgItemMessage(hwnd,IDC_BS_BITMAP,BM_SETCHECK,BST_UNCHECKED,0);
1536 }
1537 else
1538 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~BS_ICON;
1539 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
1540 return 1;
1541 }
1542 break;
1543 case IDC_BS_BITMAP:
1544 if(HIWORD(wParam)==BN_CLICKED){
1545 //変更情報
1546 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
1547
1548 if(SendDlgItemMessage(hwnd,IDC_BS_BITMAP,BM_GETCHECK,0,0)){
1549 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=BS_BITMAP;
1550 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~BS_ICON;
1551 SendDlgItemMessage(hwnd,IDC_BS_ICON,BM_SETCHECK,BST_UNCHECKED,0);
1552 }
1553 else
1554 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~BS_BITMAP;
1555 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
1556 return 1;
1557 }
1558 break;
1559 case IDC_BS_MULTILINE:
1560 if(HIWORD(wParam)==BN_CLICKED){
1561 //変更情報
1562 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
1563
1564 if(SendDlgItemMessage(hwnd,IDC_BS_MULTILINE,BM_GETCHECK,0,0))
1565 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=BS_MULTILINE;
1566 else
1567 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~BS_MULTILINE;
1568 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
1569 return 1;
1570 }
1571 break;
1572 case IDC_BS_NOTIFY:
1573 if(HIWORD(wParam)==BN_CLICKED){
1574 //変更情報
1575 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
1576
1577 if(SendDlgItemMessage(hwnd,IDC_BS_NOTIFY,BM_GETCHECK,0,0))
1578 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=BS_NOTIFY;
1579 else
1580 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~BS_NOTIFY;
1581 return 1;
1582 }
1583 break;
1584
1585 case IDC_BS_HPOS:
1586 if(HIWORD(wParam)==CBN_SELCHANGE){
1587 //変更情報
1588 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
1589
1590 i3=SendDlgItemMessage(hwnd,IDC_BS_HPOS,CB_GETCURSEL,0,0);
1591 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~(BS_LEFT|BS_RIGHT|BS_CENTER);
1592 if(i3==1) ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=BS_LEFT;
1593 else if(i3==2) ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=BS_RIGHT;
1594 else if(i3==3) ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=BS_CENTER;
1595 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
1596 return 1;
1597 }
1598 break;
1599 case IDC_BS_VPOS:
1600 if(HIWORD(wParam)==CBN_SELCHANGE){
1601 //変更情報
1602 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
1603
1604 i3=SendDlgItemMessage(hwnd,IDC_BS_VPOS,CB_GETCURSEL,0,0);
1605 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~(BS_TOP|BS_BOTTOM|BS_VCENTER);
1606 if(i3==1) ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=BS_TOP;
1607 else if(i3==2) ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=BS_BOTTOM;
1608 else if(i3==3) ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=BS_VCENTER;
1609 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
1610 return 1;
1611 }
1612 break;
1613
1614 case IDC_EXSTYLE:
1615 if(!DialogBox(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_ITEM_EXSTYLE),hwnd,(DLGPROC)DlgRadProperty_Item_ExStyle)) return 1;
1616 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
1617 return 1;
1618 }
1619 break;
1620 }
1621 return 0;
1622}
1623
1624
1625////////////////////////
1626// CHECKBOX プロパティ
1627BOOL CALLBACK RadProperty_CheckBoxProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
1628 extern MDIINFO MdiInfo[MAX_WNDNUM];
1629 extern PROJECTINFO ProjectInfo;
1630 int i,i2,i3;
1631 static BOOL bInitial;
1632
1633 switch(message){
1634 case WM_INITDIALOG:
1635 bInitial=1;
1636 i=GetWndNum(GetParent(GetParent(hwnd)));
1637 i2=GetWndInfoNum(MdiInfo[i].path);
1638
1639 SetDlgItemText(hwnd,IDC_IDNAME,ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].IdName);
1640 SetDlgItemText(hwnd,IDC_CAPTION,ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].caption);
1641
1642
1643 ////////////
1644 //スタイル
1645
1646 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&WS_DISABLED) SendDlgItemMessage(hwnd,IDC_STYLE_DISABLED,BM_SETCHECK,BST_CHECKED,0);
1647 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&WS_VISIBLE) SendDlgItemMessage(hwnd,IDC_STYLE_VISIBLE,BM_SETCHECK,BST_CHECKED,0);
1648 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&WS_GROUP) SendDlgItemMessage(hwnd,IDC_STYLE_GROUP,BM_SETCHECK,BST_CHECKED,0);
1649 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&WS_TABSTOP) SendDlgItemMessage(hwnd,IDC_STYLE_TABSTOP,BM_SETCHECK,BST_CHECKED,0);
1650
1651 if((ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&BS_AUTOCHECKBOX)==BS_AUTOCHECKBOX) SendDlgItemMessage(hwnd,IDC_BS_AUTO,BM_SETCHECK,BST_CHECKED,0);
1652 if((ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&BS_AUTO3STATE)==BS_AUTO3STATE){
1653 SendDlgItemMessage(hwnd,IDC_BS_AUTO,BM_SETCHECK,BST_CHECKED,0);
1654 SendDlgItemMessage(hwnd,IDC_BS_3STATE,BM_SETCHECK,BST_CHECKED,0);
1655 }
1656 if((ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&BS_3STATE)==BS_3STATE) SendDlgItemMessage(hwnd,IDC_BS_3STATE,BM_SETCHECK,BST_CHECKED,0);
1657 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&BS_PUSHLIKE) SendDlgItemMessage(hwnd,IDC_BS_PUSHLIKE,BM_SETCHECK,BST_CHECKED,0);
1658 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&BS_LEFTTEXT) SendDlgItemMessage(hwnd,IDC_BS_LEFTTEXT,BM_SETCHECK,BST_CHECKED,0);
1659 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&BS_ICON) SendDlgItemMessage(hwnd,IDC_BS_ICON,BM_SETCHECK,BST_CHECKED,0);
1660 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&BS_BITMAP) SendDlgItemMessage(hwnd,IDC_BS_BITMAP,BM_SETCHECK,BST_CHECKED,0);
1661 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&BS_MULTILINE) SendDlgItemMessage(hwnd,IDC_BS_MULTILINE,BM_SETCHECK,BST_CHECKED,0);
1662 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&BS_NOTIFY) SendDlgItemMessage(hwnd,IDC_BS_NOTIFY,BM_SETCHECK,BST_CHECKED,0);
1663
1664
1665 //////////////////
1666 // 水平方向の配置
1667 //////////////////
1668
1669 //"デフォルト"
1670 SendDlgItemMessage(hwnd,IDC_BS_HPOS,CB_ADDSTRING,0,(long)STRING_DEFAULT);
1671 //"左端"
1672 SendDlgItemMessage(hwnd,IDC_BS_HPOS,CB_ADDSTRING,0,(long)STRING_LEFT);
1673 //"右端"
1674 SendDlgItemMessage(hwnd,IDC_BS_HPOS,CB_ADDSTRING,0,(long)STRING_RIGHT);
1675 //"中央"
1676 SendDlgItemMessage(hwnd,IDC_BS_HPOS,CB_ADDSTRING,0,(long)STRING_CENTER);
1677
1678 //ビットを考慮してBS_CENTERを最初に比較する
1679 if((ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&BS_CENTER)==BS_CENTER) SendDlgItemMessage(hwnd,IDC_BS_HPOS,CB_SETCURSEL,3,0);
1680 else if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&BS_LEFT) SendDlgItemMessage(hwnd,IDC_BS_HPOS,CB_SETCURSEL,1,0);
1681 else if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&BS_RIGHT) SendDlgItemMessage(hwnd,IDC_BS_HPOS,CB_SETCURSEL,2,0);
1682 else SendDlgItemMessage(hwnd,IDC_BS_HPOS,CB_SETCURSEL,0,0);
1683
1684
1685 //////////////////
1686 // 垂直方向の配置
1687 //////////////////
1688
1689 //"デフォルト"
1690 SendDlgItemMessage(hwnd,IDC_BS_VPOS,CB_ADDSTRING,0,(long)STRING_DEFAULT);
1691 //"上端"
1692 SendDlgItemMessage(hwnd,IDC_BS_VPOS,CB_ADDSTRING,0,(long)STRING_TOP);
1693 //"下端"
1694 SendDlgItemMessage(hwnd,IDC_BS_VPOS,CB_ADDSTRING,0,(long)STRING_BOTTOM);
1695 //"中央"
1696 SendDlgItemMessage(hwnd,IDC_BS_VPOS,CB_ADDSTRING,0,(long)STRING_CENTER);
1697
1698 //ビットを考慮してBS_VCENTERを最初に比較する
1699 if((ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&BS_VCENTER)==BS_VCENTER) SendDlgItemMessage(hwnd,IDC_BS_VPOS,CB_SETCURSEL,3,0);
1700 else if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&BS_TOP) SendDlgItemMessage(hwnd,IDC_BS_VPOS,CB_SETCURSEL,1,0);
1701 else if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&BS_BOTTOM) SendDlgItemMessage(hwnd,IDC_BS_VPOS,CB_SETCURSEL,2,0);
1702 else SendDlgItemMessage(hwnd,IDC_BS_VPOS,CB_SETCURSEL,0,0);
1703
1704
1705 bInitial=0;
1706 break;
1707 case WM_COMMAND:
1708
1709 i=GetWndNum(GetParent(GetParent(hwnd)));
1710 if(i==-1) return 1;
1711 i2=GetWndInfoNum(MdiInfo[i].path);
1712
1713 //共通スタイル
1714 if(bInitial==0){
1715 if(DefaultItemStyles(hwnd,i,i2,wParam)) return 1;
1716 }
1717
1718 switch(LOWORD(wParam)){
1719 case IDC_BS_AUTO:
1720 if(HIWORD(wParam)==BN_CLICKED){
1721 //変更情報
1722 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
1723
1724 if(SendDlgItemMessage(hwnd,IDC_BS_AUTO,BM_GETCHECK,0,0)){
1725 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&0x04){
1726 //3state
1727 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=0xFFFFFFF0;
1728 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=BS_AUTO3STATE;
1729 }
1730 else{
1731 //2state
1732 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=0xFFFFFFF0;
1733 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=BS_AUTOCHECKBOX;
1734 }
1735 }
1736 else{
1737 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&0x04){
1738 //3state
1739 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=0xFFFFFFF0;
1740 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=BS_3STATE;
1741 }
1742 else{
1743 //2state
1744 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=0xFFFFFFF0;
1745 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=BS_CHECKBOX;
1746 }
1747 }
1748 return 1;
1749 }
1750 break;
1751 case IDC_BS_3STATE:
1752 if(HIWORD(wParam)==BN_CLICKED){
1753 //変更情報
1754 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
1755
1756 if(SendDlgItemMessage(hwnd,IDC_BS_3STATE,BM_GETCHECK,0,0)){
1757 if((ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&0x0F)==BS_CHECKBOX){
1758 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=0xFFFFFFF0;
1759 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=BS_3STATE;
1760 }
1761 else if((ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&0x0F)==BS_AUTOCHECKBOX){
1762 //自動チェック
1763 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=0xFFFFFFF0;
1764 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=BS_AUTO3STATE;
1765 }
1766 }
1767 else{
1768 if((ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&0x0F)==BS_3STATE){
1769 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=0xFFFFFFF0;
1770 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=BS_CHECKBOX;
1771 }
1772 else if((ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&0x0F)==BS_AUTO3STATE){
1773 //自動チェック
1774 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=0xFFFFFFF0;
1775 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=BS_AUTOCHECKBOX;
1776 }
1777 }
1778 return 1;
1779 }
1780 break;
1781 case IDC_BS_PUSHLIKE:
1782 if(HIWORD(wParam)==BN_CLICKED){
1783 //変更情報
1784 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
1785
1786 if(SendDlgItemMessage(hwnd,IDC_BS_PUSHLIKE,BM_GETCHECK,0,0))
1787 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=BS_PUSHLIKE;
1788 else
1789 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~BS_PUSHLIKE;
1790 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
1791 return 1;
1792 }
1793 break;
1794 case IDC_BS_LEFTTEXT:
1795 if(HIWORD(wParam)==BN_CLICKED){
1796 //変更情報
1797 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
1798
1799 if(SendDlgItemMessage(hwnd,IDC_BS_LEFTTEXT,BM_GETCHECK,0,0))
1800 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=BS_LEFTTEXT;
1801 else
1802 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~BS_LEFTTEXT;
1803 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
1804 return 1;
1805 }
1806 break;
1807 case IDC_BS_ICON:
1808 if(HIWORD(wParam)==BN_CLICKED){
1809 //変更情報
1810 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
1811
1812 if(SendDlgItemMessage(hwnd,IDC_BS_ICON,BM_GETCHECK,0,0)){
1813 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=BS_ICON;
1814 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~BS_BITMAP;
1815 SendDlgItemMessage(hwnd,IDC_BS_BITMAP,BM_SETCHECK,BST_UNCHECKED,0);
1816 }
1817 else
1818 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~BS_ICON;
1819 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
1820 return 1;
1821 }
1822 break;
1823 case IDC_BS_BITMAP:
1824 if(HIWORD(wParam)==BN_CLICKED){
1825 //変更情報
1826 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
1827
1828 if(SendDlgItemMessage(hwnd,IDC_BS_BITMAP,BM_GETCHECK,0,0)){
1829 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=BS_BITMAP;
1830 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~BS_ICON;
1831 SendDlgItemMessage(hwnd,IDC_BS_ICON,BM_SETCHECK,BST_UNCHECKED,0);
1832 }
1833 else
1834 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~BS_BITMAP;
1835 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
1836 return 1;
1837 }
1838 break;
1839 case IDC_BS_MULTILINE:
1840 if(HIWORD(wParam)==BN_CLICKED){
1841 //変更情報
1842 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
1843
1844 if(SendDlgItemMessage(hwnd,IDC_BS_MULTILINE,BM_GETCHECK,0,0))
1845 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=BS_MULTILINE;
1846 else
1847 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~BS_MULTILINE;
1848 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
1849 return 1;
1850 }
1851 break;
1852 case IDC_BS_NOTIFY:
1853 if(HIWORD(wParam)==BN_CLICKED){
1854 //変更情報
1855 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
1856
1857 if(SendDlgItemMessage(hwnd,IDC_BS_NOTIFY,BM_GETCHECK,0,0))
1858 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=BS_NOTIFY;
1859 else
1860 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~BS_NOTIFY;
1861 return 1;
1862 }
1863 break;
1864
1865 case IDC_BS_HPOS:
1866 if(HIWORD(wParam)==CBN_SELCHANGE){
1867 //変更情報
1868 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
1869
1870 i3=SendDlgItemMessage(hwnd,IDC_BS_HPOS,CB_GETCURSEL,0,0);
1871 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~(BS_LEFT|BS_RIGHT|BS_CENTER);
1872 if(i3==1) ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=BS_LEFT;
1873 else if(i3==2) ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=BS_RIGHT;
1874 else if(i3==3) ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=BS_CENTER;
1875 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
1876 return 1;
1877 }
1878 break;
1879 case IDC_BS_VPOS:
1880 if(HIWORD(wParam)==CBN_SELCHANGE){
1881 //変更情報
1882 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
1883
1884 i3=SendDlgItemMessage(hwnd,IDC_BS_VPOS,CB_GETCURSEL,0,0);
1885 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~(BS_TOP|BS_BOTTOM|BS_VCENTER);
1886 if(i3==1) ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=BS_TOP;
1887 else if(i3==2) ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=BS_BOTTOM;
1888 else if(i3==3) ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=BS_VCENTER;
1889 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
1890 return 1;
1891 }
1892 break;
1893
1894 case IDC_EXSTYLE:
1895 if(!DialogBox(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_ITEM_EXSTYLE),hwnd,(DLGPROC)DlgRadProperty_Item_ExStyle)) return 1;
1896 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
1897 return 1;
1898 }
1899 }
1900 return 0;
1901}
1902
1903
1904///////////////////////
1905// COMBOBOX プロパティ
1906
1907void RadProperty_ComboBox_StylingOrder(HWND hwnd,DWORD *style){
1908 if(!(*style&(CBS_OWNERDRAWFIXED|CBS_OWNERDRAWVARIABLE))){
1909 *style&=~(CBS_HASSTRINGS);
1910 SendDlgItemMessage(hwnd,IDC_CBS_HASSTRINGS,BM_SETCHECK,BST_UNCHECKED,0);
1911 EnableWindow(GetDlgItem(hwnd,IDC_CBS_HASSTRINGS),0);
1912 }
1913 else EnableWindow(GetDlgItem(hwnd,IDC_CBS_HASSTRINGS),1);
1914}
1915BOOL CALLBACK RadProperty_ComboBoxProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
1916 extern MDIINFO MdiInfo[MAX_WNDNUM];
1917 extern PROJECTINFO ProjectInfo;
1918 int i,i2,i3;
1919 static BOOL bInitial;
1920
1921 switch(message){
1922 case WM_INITDIALOG:
1923 bInitial=1;
1924 i=GetWndNum(GetParent(GetParent(hwnd)));
1925 i2=GetWndInfoNum(MdiInfo[i].path);
1926
1927 SetDlgItemText(hwnd,IDC_IDNAME,ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].IdName);
1928
1929
1930 /////////////////////////////////
1931 // スタイル
1932 ////////////
1933
1934 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&WS_DISABLED) SendDlgItemMessage(hwnd,IDC_STYLE_DISABLED,BM_SETCHECK,BST_CHECKED,0);
1935 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&WS_VISIBLE) SendDlgItemMessage(hwnd,IDC_STYLE_VISIBLE,BM_SETCHECK,BST_CHECKED,0);
1936 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&WS_GROUP) SendDlgItemMessage(hwnd,IDC_STYLE_GROUP,BM_SETCHECK,BST_CHECKED,0);
1937 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&WS_TABSTOP) SendDlgItemMessage(hwnd,IDC_STYLE_TABSTOP,BM_SETCHECK,BST_CHECKED,0);
1938
1939 ////////
1940 // 選択
1941 ////////
1942
1943 //"デフォルト"
1944 SendDlgItemMessage(hwnd,IDC_CBS_TYPE,CB_ADDSTRING,0,(long)STRING_DEFAULT);
1945 //"ドロップ ダウン"
1946 SendDlgItemMessage(hwnd,IDC_CBS_TYPE,CB_ADDSTRING,0,(long)STRING_COMBOBOXPROP_STYLE_DROPDOWN);
1947 //"ドロップ ダウン リスト"
1948 SendDlgItemMessage(hwnd,IDC_CBS_TYPE,CB_ADDSTRING,0,(long)STRING_COMBOBOXPROP_STYLE_DROPDOWNLIST);
1949
1950 //ビットを考慮してCBS_DROPDOWNLISTを最初に比較する
1951 if((ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&CBS_DROPDOWNLIST)==CBS_DROPDOWNLIST) SendDlgItemMessage(hwnd,IDC_CBS_TYPE,CB_SETCURSEL,2,0);
1952 else if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&CBS_SIMPLE) SendDlgItemMessage(hwnd,IDC_CBS_TYPE,CB_SETCURSEL,0,0);
1953 else if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&CBS_DROPDOWN) SendDlgItemMessage(hwnd,IDC_CBS_TYPE,CB_SETCURSEL,1,0);
1954
1955
1956 ////////////////
1957 // オーナー描画
1958 ////////////////
1959
1960 //"なし"
1961 SendDlgItemMessage(hwnd,IDC_CBS_OWNERDRAW,CB_ADDSTRING,0,(long)STRING_NONE_);
1962 //"固定"
1963 SendDlgItemMessage(hwnd,IDC_CBS_OWNERDRAW,CB_ADDSTRING,0,(long)STRING_OWNERDRAW_FIXED);
1964 //"可変"
1965 SendDlgItemMessage(hwnd,IDC_CBS_OWNERDRAW,CB_ADDSTRING,0,(long)STRING_OWNERDRAW_VARIABLE);
1966
1967 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&CBS_OWNERDRAWFIXED) SendDlgItemMessage(hwnd,IDC_CBS_OWNERDRAW,CB_SETCURSEL,1,0);
1968 else if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&CBS_OWNERDRAWVARIABLE) SendDlgItemMessage(hwnd,IDC_CBS_OWNERDRAW,CB_SETCURSEL,2,0);
1969 else SendDlgItemMessage(hwnd,IDC_CBS_OWNERDRAW,CB_SETCURSEL,0,0);
1970
1971 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&CBS_HASSTRINGS) SendDlgItemMessage(hwnd,IDC_CBS_HASSTRINGS,BM_SETCHECK,BST_CHECKED,0);
1972 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&CBS_SORT) SendDlgItemMessage(hwnd,IDC_CBS_SORT,BM_SETCHECK,BST_CHECKED,0);
1973 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&CBS_NOINTEGRALHEIGHT) SendDlgItemMessage(hwnd,IDC_CBS_NOINTEGRALHEIGHT,BM_SETCHECK,BST_CHECKED,0);
1974 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&CBS_OEMCONVERT) SendDlgItemMessage(hwnd,IDC_CBS_OEMCONVERT,BM_SETCHECK,BST_CHECKED,0);
1975 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&WS_VSCROLL) SendDlgItemMessage(hwnd,IDC_STYLE_VSCROLL,BM_SETCHECK,BST_CHECKED,0);
1976 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&CBS_AUTOHSCROLL) SendDlgItemMessage(hwnd,IDC_CBS_AUTOHSCROLL,BM_SETCHECK,BST_CHECKED,0);
1977 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&CBS_DISABLENOSCROLL) SendDlgItemMessage(hwnd,IDC_CBS_DISABLENOSCROLL,BM_SETCHECK,BST_CHECKED,0);
1978 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&CBS_UPPERCASE) SendDlgItemMessage(hwnd,IDC_CBS_UPPERCASE,BM_SETCHECK,BST_CHECKED,0);
1979 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&CBS_LOWERCASE) SendDlgItemMessage(hwnd,IDC_CBS_LOWERCASE,BM_SETCHECK,BST_CHECKED,0);
1980
1981 RadProperty_ComboBox_StylingOrder(hwnd,&ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
1982
1983
1984 bInitial=0;
1985 break;
1986 case WM_COMMAND:
1987
1988 i=GetWndNum(GetParent(GetParent(hwnd)));
1989 if(i==-1) return 1;
1990 i2=GetWndInfoNum(MdiInfo[i].path);
1991
1992 //共通スタイル
1993 if(bInitial==0){
1994 if(DefaultItemStyles(hwnd,i,i2,wParam)) return 1;
1995 }
1996
1997 switch(LOWORD(wParam)){
1998 case IDC_CBS_TYPE:
1999 if(HIWORD(wParam)==CBN_SELCHANGE){
2000 //変更情報
2001 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
2002
2003 i3=SendDlgItemMessage(hwnd,IDC_CBS_TYPE,CB_GETCURSEL,0,0);
2004 //CBS_DROPDOWNLIST=CBS_SIMPLE | CBS_DROPDOWN
2005 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~(CBS_DROPDOWNLIST);
2006 if(i3==0) ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=CBS_SIMPLE;
2007 else if(i3==1) ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=CBS_DROPDOWN;
2008 else if(i3==2) ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=CBS_DROPDOWNLIST;
2009
2010 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
2011 return 1;
2012 }
2013 break;
2014 case IDC_CBS_OWNERDRAW:
2015 if(HIWORD(wParam)==CBN_SELCHANGE){
2016 //変更情報
2017 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
2018
2019 i3=SendDlgItemMessage(hwnd,IDC_CBS_OWNERDRAW,CB_GETCURSEL,0,0);
2020 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~(CBS_OWNERDRAWFIXED|CBS_OWNERDRAWVARIABLE);
2021 if(i3==1) ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=CBS_OWNERDRAWFIXED;
2022 else if(i3==2) ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=CBS_OWNERDRAWVARIABLE;
2023
2024 RadProperty_ComboBox_StylingOrder(hwnd,&ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
2025 return 1;
2026 }
2027 break;
2028
2029 case IDC_CBS_HASSTRINGS:
2030 if(HIWORD(wParam)==BN_CLICKED){
2031 //変更情報
2032 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
2033
2034 if(SendDlgItemMessage(hwnd,IDC_CBS_HASSTRINGS,BM_GETCHECK,0,0))
2035 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=CBS_HASSTRINGS;
2036 else
2037 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~CBS_HASSTRINGS;
2038 return 1;
2039 }
2040 break;
2041 case IDC_CBS_SORT:
2042 if(HIWORD(wParam)==BN_CLICKED){
2043 //変更情報
2044 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
2045
2046 if(SendDlgItemMessage(hwnd,IDC_CBS_SORT,BM_GETCHECK,0,0))
2047 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=CBS_SORT;
2048 else
2049 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~CBS_SORT;
2050 return 1;
2051 }
2052 break;
2053 case IDC_CBS_NOINTEGRALHEIGHT:
2054 if(HIWORD(wParam)==BN_CLICKED){
2055 //変更情報
2056 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
2057
2058 if(SendDlgItemMessage(hwnd,IDC_CBS_NOINTEGRALHEIGHT,BM_GETCHECK,0,0))
2059 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=CBS_NOINTEGRALHEIGHT;
2060 else
2061 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~CBS_NOINTEGRALHEIGHT;
2062 return 1;
2063 }
2064 break;
2065 case IDC_CBS_OEMCONVERT:
2066 if(HIWORD(wParam)==BN_CLICKED){
2067 //変更情報
2068 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
2069
2070 if(SendDlgItemMessage(hwnd,IDC_CBS_OEMCONVERT,BM_GETCHECK,0,0))
2071 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=CBS_OEMCONVERT;
2072 else
2073 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~CBS_OEMCONVERT;
2074 return 1;
2075 }
2076 break;
2077 case IDC_STYLE_VSCROLL:
2078 if(HIWORD(wParam)==BN_CLICKED){
2079 //変更情報
2080 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
2081
2082 if(SendDlgItemMessage(hwnd,IDC_STYLE_VSCROLL,BM_GETCHECK,0,0))
2083 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=WS_VSCROLL;
2084 else
2085 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~WS_VSCROLL;
2086 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
2087 return 1;
2088 }
2089 break;
2090 case IDC_CBS_AUTOHSCROLL:
2091 if(HIWORD(wParam)==BN_CLICKED){
2092 //変更情報
2093 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
2094
2095 if(SendDlgItemMessage(hwnd,IDC_CBS_AUTOHSCROLL,BM_GETCHECK,0,0))
2096 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=CBS_AUTOHSCROLL;
2097 else
2098 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~CBS_AUTOHSCROLL;
2099 return 1;
2100 }
2101 break;
2102 case IDC_CBS_DISABLENOSCROLL:
2103 if(HIWORD(wParam)==BN_CLICKED){
2104 //変更情報
2105 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
2106
2107 if(SendDlgItemMessage(hwnd,IDC_CBS_DISABLENOSCROLL,BM_GETCHECK,0,0))
2108 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=CBS_DISABLENOSCROLL;
2109 else
2110 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~CBS_DISABLENOSCROLL;
2111 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
2112 return 1;
2113 }
2114 break;
2115 case IDC_CBS_UPPERCASE:
2116 if(HIWORD(wParam)==BN_CLICKED){
2117 //変更情報
2118 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
2119
2120 if(SendDlgItemMessage(hwnd,IDC_CBS_UPPERCASE,BM_GETCHECK,0,0))
2121 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=CBS_UPPERCASE;
2122 else
2123 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~CBS_UPPERCASE;
2124 return 1;
2125 }
2126 break;
2127 case IDC_CBS_LOWERCASE:
2128 if(HIWORD(wParam)==BN_CLICKED){
2129 //変更情報
2130 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
2131
2132 if(SendDlgItemMessage(hwnd,IDC_CBS_LOWERCASE,BM_GETCHECK,0,0))
2133 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=CBS_LOWERCASE;
2134 else
2135 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~CBS_LOWERCASE;
2136 return 1;
2137 }
2138 break;
2139
2140 case IDC_EXSTYLE:
2141 if(!DialogBox(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_ITEM_EXSTYLE),hwnd,(DLGPROC)DlgRadProperty_Item_ExStyle)) return 1;
2142 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
2143 return 1;
2144 }
2145 break;
2146 }
2147 return 0;
2148}
2149
2150
2151/////////////////////
2152// EDIT プロパティ
2153
2154void RadProperty_Edit_StylingOrder(HWND hwnd,DWORD *style){
2155 if(*style&ES_MULTILINE){
2156 EnableWindow(GetDlgItem(hwnd,IDC_STYLE_HSCROLL),1);
2157 EnableWindow(GetDlgItem(hwnd,IDC_STYLE_VSCROLL),1);
2158 EnableWindow(GetDlgItem(hwnd,IDC_ES_AUTOVSCROLL),1);
2159
2160 *style&=~(ES_PASSWORD);
2161 SendDlgItemMessage(hwnd,IDC_ES_PASSWORD,BM_SETCHECK,BST_UNCHECKED,0);
2162 EnableWindow(GetDlgItem(hwnd,IDC_ES_PASSWORD),0);
2163 }
2164 else{
2165 EnableWindow(GetDlgItem(hwnd,IDC_ES_PASSWORD),1);
2166
2167 *style&=~(WS_HSCROLL|WS_VSCROLL|ES_AUTOVSCROLL);
2168 SendDlgItemMessage(hwnd,IDC_STYLE_HSCROLL,BM_SETCHECK,BST_UNCHECKED,0);
2169 SendDlgItemMessage(hwnd,IDC_STYLE_VSCROLL,BM_SETCHECK,BST_UNCHECKED,0);
2170 SendDlgItemMessage(hwnd,IDC_ES_AUTOVSCROLL,BM_SETCHECK,BST_UNCHECKED,0);
2171 EnableWindow(GetDlgItem(hwnd,IDC_STYLE_HSCROLL),0);
2172 EnableWindow(GetDlgItem(hwnd,IDC_STYLE_VSCROLL),0);
2173 EnableWindow(GetDlgItem(hwnd,IDC_ES_AUTOVSCROLL),0);
2174 }
2175}
2176BOOL CALLBACK RadProperty_EditProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
2177 extern MDIINFO MdiInfo[MAX_WNDNUM];
2178 extern PROJECTINFO ProjectInfo;
2179 int i,i2,i3;
2180 static BOOL bInitial;
2181
2182 switch(message){
2183 case WM_INITDIALOG:
2184 bInitial=1;
2185 i=GetWndNum(GetParent(GetParent(hwnd)));
2186 i2=GetWndInfoNum(MdiInfo[i].path);
2187
2188 SetDlgItemText(hwnd,IDC_IDNAME,ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].IdName);
2189 SetDlgItemText(hwnd,IDC_CAPTION,ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].caption);
2190
2191
2192 ////////////
2193 // スタイル
2194 ////////////
2195
2196 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&WS_DISABLED) SendDlgItemMessage(hwnd,IDC_STYLE_DISABLED,BM_SETCHECK,BST_CHECKED,0);
2197 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&WS_VISIBLE) SendDlgItemMessage(hwnd,IDC_STYLE_VISIBLE,BM_SETCHECK,BST_CHECKED,0);
2198 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&WS_GROUP) SendDlgItemMessage(hwnd,IDC_STYLE_GROUP,BM_SETCHECK,BST_CHECKED,0);
2199 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&WS_TABSTOP) SendDlgItemMessage(hwnd,IDC_STYLE_TABSTOP,BM_SETCHECK,BST_CHECKED,0);
2200
2201 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&ES_MULTILINE) SendDlgItemMessage(hwnd,IDC_ES_MULTILINE,BM_SETCHECK,BST_CHECKED,0);
2202 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&ES_NUMBER) SendDlgItemMessage(hwnd,IDC_ES_NUMBER,BM_SETCHECK,BST_CHECKED,0);
2203 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&WS_HSCROLL) SendDlgItemMessage(hwnd,IDC_STYLE_HSCROLL,BM_SETCHECK,BST_CHECKED,0);
2204 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&ES_AUTOHSCROLL) SendDlgItemMessage(hwnd,IDC_ES_AUTOHSCROLL,BM_SETCHECK,BST_CHECKED,0);
2205 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&WS_VSCROLL) SendDlgItemMessage(hwnd,IDC_STYLE_VSCROLL,BM_SETCHECK,BST_CHECKED,0);
2206 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&ES_AUTOVSCROLL) SendDlgItemMessage(hwnd,IDC_ES_AUTOVSCROLL,BM_SETCHECK,BST_CHECKED,0);
2207 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&ES_PASSWORD) SendDlgItemMessage(hwnd,IDC_ES_PASSWORD,BM_SETCHECK,BST_CHECKED,0);
2208 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&ES_NOHIDESEL) SendDlgItemMessage(hwnd,IDC_ES_NOHIDESEL,BM_SETCHECK,BST_CHECKED,0);
2209 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&ES_OEMCONVERT) SendDlgItemMessage(hwnd,IDC_ES_OEMCONVERT,BM_SETCHECK,BST_CHECKED,0);
2210 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&ES_WANTRETURN) SendDlgItemMessage(hwnd,IDC_ES_WANTRETURN,BM_SETCHECK,BST_CHECKED,0);
2211 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&ES_UPPERCASE) SendDlgItemMessage(hwnd,IDC_ES_UPPERCASE,BM_SETCHECK,BST_CHECKED,0);
2212 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&ES_LOWERCASE) SendDlgItemMessage(hwnd,IDC_ES_LOWERCASE,BM_SETCHECK,BST_CHECKED,0);
2213 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&ES_READONLY) SendDlgItemMessage(hwnd,IDC_ES_READONLY,BM_SETCHECK,BST_CHECKED,0);
2214
2215
2216 //////////////////
2217 // テキストの配置
2218 //////////////////
2219
2220 //"左端"
2221 SendDlgItemMessage(hwnd,IDC_ES_TEXTPOS,CB_ADDSTRING,0,(long)STRING_LEFT);
2222 //"中央"
2223 SendDlgItemMessage(hwnd,IDC_ES_TEXTPOS,CB_ADDSTRING,0,(long)STRING_CENTER);
2224 //"右端"
2225 SendDlgItemMessage(hwnd,IDC_ES_TEXTPOS,CB_ADDSTRING,0,(long)STRING_RIGHT);
2226
2227 //ビットを考慮してES_LEFTを最後に検討する
2228 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&ES_CENTER) SendDlgItemMessage(hwnd,IDC_ES_TEXTPOS,CB_SETCURSEL,1,0);
2229 else if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&ES_RIGHT) SendDlgItemMessage(hwnd,IDC_ES_TEXTPOS,CB_SETCURSEL,2,0);
2230 else SendDlgItemMessage(hwnd,IDC_ES_TEXTPOS,CB_SETCURSEL,0,0);
2231
2232 RadProperty_Edit_StylingOrder(hwnd,&ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
2233
2234
2235 bInitial=0;
2236 break;
2237 case WM_COMMAND:
2238
2239 i=GetWndNum(GetParent(GetParent(hwnd)));
2240 if(i==-1) return 1;
2241 i2=GetWndInfoNum(MdiInfo[i].path);
2242
2243 //共通スタイル
2244 if(bInitial==0){
2245 if(DefaultItemStyles(hwnd,i,i2,wParam)) return 1;
2246 }
2247
2248 switch(LOWORD(wParam)){
2249 case IDC_ES_MULTILINE:
2250 if(HIWORD(wParam)==BN_CLICKED){
2251 //変更情報
2252 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
2253
2254 if(SendDlgItemMessage(hwnd,IDC_ES_MULTILINE,BM_GETCHECK,0,0))
2255 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=ES_MULTILINE;
2256 else
2257 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~ES_MULTILINE;
2258 RadProperty_Edit_StylingOrder(hwnd,&ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
2259 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
2260 return 1;
2261 }
2262 break;
2263 case IDC_ES_NUMBER:
2264 if(HIWORD(wParam)==BN_CLICKED){
2265 //変更情報
2266 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
2267
2268 if(SendDlgItemMessage(hwnd,IDC_ES_NUMBER,BM_GETCHECK,0,0))
2269 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=ES_NUMBER;
2270 else
2271 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~ES_NUMBER;
2272 return 1;
2273 }
2274 break;
2275 case IDC_STYLE_HSCROLL:
2276 if(HIWORD(wParam)==BN_CLICKED){
2277 //変更情報
2278 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
2279
2280 if(SendDlgItemMessage(hwnd,IDC_STYLE_HSCROLL,BM_GETCHECK,0,0))
2281 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=WS_HSCROLL;
2282 else
2283 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~WS_HSCROLL;
2284 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
2285 return 1;
2286 }
2287 break;
2288 case IDC_ES_AUTOHSCROLL:
2289 if(HIWORD(wParam)==BN_CLICKED){
2290 //変更情報
2291 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
2292
2293 if(SendDlgItemMessage(hwnd,IDC_ES_AUTOHSCROLL,BM_GETCHECK,0,0))
2294 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=ES_AUTOHSCROLL;
2295 else
2296 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~ES_AUTOHSCROLL;
2297 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
2298 return 1;
2299 }
2300 break;
2301 case IDC_STYLE_VSCROLL:
2302 if(HIWORD(wParam)==BN_CLICKED){
2303 //変更情報
2304 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
2305
2306 if(SendDlgItemMessage(hwnd,IDC_STYLE_VSCROLL,BM_GETCHECK,0,0))
2307 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=WS_VSCROLL;
2308 else
2309 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~WS_VSCROLL;
2310 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
2311 return 1;
2312 }
2313 break;
2314 case IDC_ES_AUTOVSCROLL:
2315 if(HIWORD(wParam)==BN_CLICKED){
2316 //変更情報
2317 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
2318
2319 if(SendDlgItemMessage(hwnd,IDC_ES_AUTOVSCROLL,BM_GETCHECK,0,0))
2320 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=ES_AUTOVSCROLL;
2321 else
2322 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~ES_AUTOVSCROLL;
2323 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
2324 return 1;
2325 }
2326 break;
2327 case IDC_ES_PASSWORD:
2328 if(HIWORD(wParam)==BN_CLICKED){
2329 //変更情報
2330 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
2331
2332 if(SendDlgItemMessage(hwnd,IDC_ES_PASSWORD,BM_GETCHECK,0,0))
2333 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=ES_PASSWORD;
2334 else
2335 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~ES_PASSWORD;
2336 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
2337 return 1;
2338 }
2339 break;
2340 case IDC_ES_NOHIDESEL:
2341 if(HIWORD(wParam)==BN_CLICKED){
2342 //変更情報
2343 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
2344
2345 if(SendDlgItemMessage(hwnd,IDC_ES_NOHIDESEL,BM_GETCHECK,0,0))
2346 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=ES_NOHIDESEL;
2347 else
2348 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~ES_NOHIDESEL;
2349 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
2350 return 1;
2351 }
2352 break;
2353 case IDC_ES_OEMCONVERT:
2354 if(HIWORD(wParam)==BN_CLICKED){
2355 //変更情報
2356 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
2357
2358 if(SendDlgItemMessage(hwnd,IDC_ES_OEMCONVERT,BM_GETCHECK,0,0))
2359 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=ES_OEMCONVERT;
2360 else
2361 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~ES_OEMCONVERT;
2362 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
2363 return 1;
2364 }
2365 break;
2366 case IDC_ES_WANTRETURN:
2367 if(HIWORD(wParam)==BN_CLICKED){
2368 //変更情報
2369 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
2370
2371 if(SendDlgItemMessage(hwnd,IDC_ES_WANTRETURN,BM_GETCHECK,0,0))
2372 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=ES_WANTRETURN;
2373 else
2374 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~ES_WANTRETURN;
2375 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
2376 return 1;
2377 }
2378 break;
2379 case IDC_ES_UPPERCASE:
2380 if(HIWORD(wParam)==BN_CLICKED){
2381 //変更情報
2382 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
2383
2384 if(SendDlgItemMessage(hwnd,IDC_ES_UPPERCASE,BM_GETCHECK,0,0)){
2385 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~ES_LOWERCASE;
2386 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=ES_UPPERCASE;
2387 SendDlgItemMessage(hwnd,IDC_ES_LOWERCASE,BM_SETCHECK,BST_UNCHECKED,0);
2388 }
2389 else
2390 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~ES_UPPERCASE;
2391 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
2392 return 1;
2393 }
2394 break;
2395 case IDC_ES_LOWERCASE:
2396 if(HIWORD(wParam)==BN_CLICKED){
2397 //変更情報
2398 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
2399
2400 if(SendDlgItemMessage(hwnd,IDC_ES_LOWERCASE,BM_GETCHECK,0,0)){
2401 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~ES_UPPERCASE;
2402 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=ES_LOWERCASE;
2403 SendDlgItemMessage(hwnd,IDC_ES_UPPERCASE,BM_SETCHECK,BST_UNCHECKED,0);
2404 }
2405 else
2406 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~ES_LOWERCASE;
2407 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
2408 return 1;
2409 }
2410 break;
2411 case IDC_ES_READONLY:
2412 if(HIWORD(wParam)==BN_CLICKED){
2413 //変更情報
2414 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
2415
2416 if(SendDlgItemMessage(hwnd,IDC_ES_READONLY,BM_GETCHECK,0,0))
2417 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=ES_READONLY;
2418 else
2419 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~ES_READONLY;
2420 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
2421 return 1;
2422 }
2423 break;
2424
2425 case IDC_ES_TEXTPOS:
2426 if(HIWORD(wParam)==CBN_SELCHANGE){
2427 //変更情報
2428 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
2429
2430 i3=SendDlgItemMessage(hwnd,IDC_ES_TEXTPOS,CB_GETCURSEL,0,0);
2431 //ES_LEFT=0
2432 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~(ES_CENTER|ES_RIGHT);
2433 if(i3==1) ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=ES_CENTER;
2434 else if(i3==2) ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=ES_RIGHT;
2435 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
2436 return 1;
2437 }
2438 break;
2439
2440 case IDC_EXSTYLE:
2441 if(!DialogBox(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_ITEM_EXSTYLE),hwnd,(DLGPROC)DlgRadProperty_Item_ExStyle)) return 1;
2442 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
2443 return 1;
2444 }
2445 break;
2446 }
2447 return 0;
2448}
2449
2450
2451////////////////////////
2452// GROUPBOX プロパティ
2453
2454BOOL CALLBACK RadProperty_GroupBoxProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
2455 extern MDIINFO MdiInfo[MAX_WNDNUM];
2456 extern PROJECTINFO ProjectInfo;
2457 int i,i2,i3;
2458 static BOOL bInitial;
2459
2460 switch(message){
2461 case WM_INITDIALOG:
2462 bInitial=1;
2463 i=GetWndNum(GetParent(GetParent(hwnd)));
2464 i2=GetWndInfoNum(MdiInfo[i].path);
2465
2466 SetDlgItemText(hwnd,IDC_IDNAME,ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].IdName);
2467 SetDlgItemText(hwnd,IDC_CAPTION,ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].caption);
2468
2469
2470 /////////////////////////////
2471 // スタイル
2472 ////////////
2473
2474 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&WS_DISABLED) SendDlgItemMessage(hwnd,IDC_STYLE_DISABLED,BM_SETCHECK,BST_CHECKED,0);
2475 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&WS_VISIBLE) SendDlgItemMessage(hwnd,IDC_STYLE_VISIBLE,BM_SETCHECK,BST_CHECKED,0);
2476 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&WS_GROUP) SendDlgItemMessage(hwnd,IDC_STYLE_GROUP,BM_SETCHECK,BST_CHECKED,0);
2477 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&WS_TABSTOP) SendDlgItemMessage(hwnd,IDC_STYLE_TABSTOP,BM_SETCHECK,BST_CHECKED,0);
2478
2479
2480 //////////////////
2481 // 水平方向の配置
2482 //////////////////
2483
2484 //"デフォルト"
2485 SendDlgItemMessage(hwnd,IDC_BS_POSITION,CB_ADDSTRING,0,(long)STRING_DEFAULT);
2486 //"左端"
2487 SendDlgItemMessage(hwnd,IDC_BS_POSITION,CB_ADDSTRING,0,(long)STRING_LEFT);
2488 //"右端"
2489 SendDlgItemMessage(hwnd,IDC_BS_POSITION,CB_ADDSTRING,0,(long)STRING_RIGHT);
2490 //"中央"
2491 SendDlgItemMessage(hwnd,IDC_BS_POSITION,CB_ADDSTRING,0,(long)STRING_CENTER);
2492
2493 //ビットを考慮してBS_CENTERを最初に検討する
2494 if((ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&BS_CENTER)==BS_CENTER) SendDlgItemMessage(hwnd,IDC_BS_POSITION,CB_SETCURSEL,3,0);
2495 else if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&BS_LEFT) SendDlgItemMessage(hwnd,IDC_BS_POSITION,CB_SETCURSEL,1,0);
2496 else if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&BS_RIGHT) SendDlgItemMessage(hwnd,IDC_BS_POSITION,CB_SETCURSEL,2,0);
2497 else SendDlgItemMessage(hwnd,IDC_BS_POSITION,CB_SETCURSEL,0,0);
2498
2499 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&BS_ICON) SendDlgItemMessage(hwnd,IDC_BS_ICON,BM_SETCHECK,BST_CHECKED,0);
2500 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&BS_BITMAP) SendDlgItemMessage(hwnd,IDC_BS_BITMAP,BM_SETCHECK,BST_CHECKED,0);
2501 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&BS_NOTIFY) SendDlgItemMessage(hwnd,IDC_BS_NOTIFY,BM_SETCHECK,BST_CHECKED,0);
2502
2503
2504 bInitial=0;
2505 break;
2506 case WM_COMMAND:
2507
2508 i=GetWndNum(GetParent(GetParent(hwnd)));
2509 if(i==-1) return 1;
2510 i2=GetWndInfoNum(MdiInfo[i].path);
2511
2512 //共通スタイル
2513 if(bInitial==0){
2514 if(DefaultItemStyles(hwnd,i,i2,wParam)) return 1;
2515 }
2516
2517 switch(LOWORD(wParam)){
2518 case IDC_BS_POSITION:
2519 if(HIWORD(wParam)==CBN_SELCHANGE){
2520 //変更情報
2521 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
2522
2523 i3=SendDlgItemMessage(hwnd,IDC_BS_POSITION,CB_GETCURSEL,0,0);
2524 //BS_CENTER=BS_LEFT | BS_RIGHT
2525 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~(BS_CENTER);
2526 if(i3==1) ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=BS_LEFT;
2527 else if(i3==2) ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=BS_RIGHT;
2528 else if(i3==3) ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=BS_CENTER;
2529 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
2530 return 1;
2531 }
2532 break;
2533
2534 case IDC_BS_ICON:
2535 if(HIWORD(wParam)==BN_CLICKED){
2536 //変更情報
2537 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
2538
2539 if(SendDlgItemMessage(hwnd,IDC_BS_ICON,BM_GETCHECK,0,0))
2540 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=BS_ICON;
2541 else
2542 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~BS_ICON;
2543 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
2544 return 1;
2545 }
2546 break;
2547 case IDC_BS_BITMAP:
2548 if(HIWORD(wParam)==BN_CLICKED){
2549 //変更情報
2550 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
2551
2552 if(SendDlgItemMessage(hwnd,IDC_BS_BITMAP,BM_GETCHECK,0,0))
2553 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=BS_BITMAP;
2554 else
2555 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~BS_BITMAP;
2556 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
2557 return 1;
2558 }
2559 break;
2560 case IDC_BS_NOTIFY:
2561 if(HIWORD(wParam)==BN_CLICKED){
2562 //変更情報
2563 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
2564
2565 if(SendDlgItemMessage(hwnd,IDC_BS_NOTIFY,BM_GETCHECK,0,0))
2566 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=BS_NOTIFY;
2567 else
2568 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~BS_NOTIFY;
2569 return 1;
2570 }
2571 break;
2572
2573 case IDC_EXSTYLE:
2574 if(!DialogBox(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_ITEM_EXSTYLE),hwnd,(DLGPROC)DlgRadProperty_Item_ExStyle)) return 1;
2575 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
2576 return 1;
2577 }
2578 break;
2579 }
2580 return 0;
2581}
2582
2583
2584////////////////////////
2585// IMAGEBOX プロパティ
2586
2587void RadProperty_ImageBox_StylingOrder(HWND hwnd,DWORD *style){
2588 if((*style&0x000F)==SS_ICON||
2589 (*style&0x000F)==SS_BITMAP){
2590 EnableWindow(GetDlgItem(hwnd,IDC_PATH),1);
2591 EnableWindow(GetDlgItem(hwnd,IDC_CHANGEPATH),1);
2592 EnableWindow(GetDlgItem(hwnd,IDC_SS_CENTERIMAGE),1);
2593 EnableWindow(GetDlgItem(hwnd,IDC_SS_RIGHTJUST),1);
2594 }
2595 else{
2596 EnableWindow(GetDlgItem(hwnd,IDC_PATH),0);
2597 EnableWindow(GetDlgItem(hwnd,IDC_CHANGEPATH),0);
2598 EnableWindow(GetDlgItem(hwnd,IDC_SS_CENTERIMAGE),0);
2599 EnableWindow(GetDlgItem(hwnd,IDC_SS_RIGHTJUST),0);
2600 }
2601}
2602BOOL CALLBACK RadProperty_ImageBoxProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
2603 extern HANDLE hHeap;
2604 extern MDIINFO MdiInfo[MAX_WNDNUM];
2605 extern PROJECTINFO ProjectInfo;
2606 int i,i2,i3;
2607 char temporary[MAX_PATH];
2608 static BOOL bInitial;
2609
2610 switch(message){
2611 case WM_INITDIALOG:
2612 bInitial=1;
2613 i=GetWndNum(GetParent(GetParent(hwnd)));
2614 i2=GetWndInfoNum(MdiInfo[i].path);
2615
2616 SetDlgItemText(hwnd,IDC_IDNAME,ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].IdName);
2617
2618
2619 /////////////////////////////
2620 // スタイル
2621 ////////////
2622
2623 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&WS_DISABLED) SendDlgItemMessage(hwnd,IDC_STYLE_DISABLED,BM_SETCHECK,BST_CHECKED,0);
2624 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&WS_VISIBLE) SendDlgItemMessage(hwnd,IDC_STYLE_VISIBLE,BM_SETCHECK,BST_CHECKED,0);
2625 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&WS_GROUP) SendDlgItemMessage(hwnd,IDC_STYLE_GROUP,BM_SETCHECK,BST_CHECKED,0);
2626 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&WS_TABSTOP) SendDlgItemMessage(hwnd,IDC_STYLE_TABSTOP,BM_SETCHECK,BST_CHECKED,0);
2627
2628 //////////
2629 // タイプ
2630 //////////
2631
2632 //"フレーム(黒)"
2633 SendDlgItemMessage(hwnd,IDC_IMAGE_TYPE,CB_ADDSTRING,0,(long)STRING_IMAGEBOXPROP_STYLE_FRAME_BLACK);
2634 //"フレーム(灰色)"
2635 SendDlgItemMessage(hwnd,IDC_IMAGE_TYPE,CB_ADDSTRING,0,(long)STRING_IMAGEBOXPROP_STYLE_FRAME_GRAY);
2636 //"フレーム(白)"
2637 SendDlgItemMessage(hwnd,IDC_IMAGE_TYPE,CB_ADDSTRING,0,(long)STRING_IMAGEBOXPROP_STYLE_FRAME_WHITE);
2638 //"フレーム(縁取り)"
2639 SendDlgItemMessage(hwnd,IDC_IMAGE_TYPE,CB_ADDSTRING,0,(long)STRING_IMAGEBOXPROP_STYLE_FRAME_ETCHED);
2640 //"四角形(黒)"
2641 SendDlgItemMessage(hwnd,IDC_IMAGE_TYPE,CB_ADDSTRING,0,(long)STRING_IMAGEBOXPROP_STYLE_RECT_BLACK);
2642 //"四角形(灰色)"
2643 SendDlgItemMessage(hwnd,IDC_IMAGE_TYPE,CB_ADDSTRING,0,(long)STRING_IMAGEBOXPROP_STYLE_RECT_GRAY);
2644 //"四角形(白)"
2645 SendDlgItemMessage(hwnd,IDC_IMAGE_TYPE,CB_ADDSTRING,0,(long)STRING_IMAGEBOXPROP_STYLE_RECT_WHITE);
2646 //"アイコン"
2647 SendDlgItemMessage(hwnd,IDC_IMAGE_TYPE,CB_ADDSTRING,0,(long)STRING_IMAGEBOXPROP_STYLE_ICON);
2648 //"ビットマップ"
2649 SendDlgItemMessage(hwnd,IDC_IMAGE_TYPE,CB_ADDSTRING,0,(long)STRING_IMAGEBOXPROP_STYLE_BITMAP);
2650
2651 if((ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&0x0000000F)==SS_BLACKFRAME) SendDlgItemMessage(hwnd,IDC_IMAGE_TYPE,CB_SETCURSEL,0,0);
2652 else if((ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&0x0000000F)==SS_GRAYFRAME) SendDlgItemMessage(hwnd,IDC_IMAGE_TYPE,CB_SETCURSEL,1,0);
2653 else if((ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&0x0000000F)==SS_WHITEFRAME) SendDlgItemMessage(hwnd,IDC_IMAGE_TYPE,CB_SETCURSEL,2,0);
2654 else if((ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&0x0000001F)==SS_ETCHEDFRAME) SendDlgItemMessage(hwnd,IDC_IMAGE_TYPE,CB_SETCURSEL,3,0);
2655 else if((ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&0x0000000F)==SS_BLACKRECT) SendDlgItemMessage(hwnd,IDC_IMAGE_TYPE,CB_SETCURSEL,4,0);
2656 else if((ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&0x0000000F)==SS_GRAYRECT) SendDlgItemMessage(hwnd,IDC_IMAGE_TYPE,CB_SETCURSEL,5,0);
2657 else if((ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&0x0000000F)==SS_WHITERECT) SendDlgItemMessage(hwnd,IDC_IMAGE_TYPE,CB_SETCURSEL,6,0);
2658 if((ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&0x0000000F)==SS_ICON||
2659 (ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&0x0000000F)==SS_BITMAP){
2660 if((ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&0x0000000F)==SS_ICON) SendDlgItemMessage(hwnd,IDC_IMAGE_TYPE,CB_SETCURSEL,7,0);
2661 else if((ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&0x0000000F)==SS_BITMAP) SendDlgItemMessage(hwnd,IDC_IMAGE_TYPE,CB_SETCURSEL,8,0);
2662
2663 //リソース/ファイル スイッチチェックを表示
2664 ShowWindow(GetDlgItem(hwnd,IDC_FILE),SW_SHOW);
2665 ShowWindow(GetDlgItem(hwnd,IDC_RESOURCE),SW_SHOW);
2666
2667 //イメージ状態テキストを表示
2668 ShowWindow(GetDlgItem(hwnd,IDC_IMAGE_SITUATION),SW_SHOW);
2669
2670 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].ImageCtrlInfo.type==IMGTYPE_FILE){
2671 //ファイル指定を表示
2672 ShowWindow(GetDlgItem(hwnd,IDC_PATH),SW_SHOW);
2673 ShowWindow(GetDlgItem(hwnd,IDC_CHANGEPATH),SW_SHOW);
2674 SetDlgItemText(hwnd,IDC_PATH,ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].ImageCtrlInfo.path);
2675
2676 //イメージ状態テキスト
2677 //"ファイル指定:"
2678 SetDlgItemText(hwnd,IDC_IMAGE_SITUATION,STRING_IMAGEBOXPROP_STYLE_FROMFILE);
2679
2680 SendDlgItemMessage(hwnd,IDC_FILE,BM_SETCHECK,BST_CHECKED,0);
2681 }
2682 else if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].ImageCtrlInfo.type==IMGTYPE_RES){
2683 //リソース指定を表示
2684 ShowWindow(GetDlgItem(hwnd,IDC_RESCOMBO),SW_SHOW);
2685
2686 //イメージ状態テキスト
2687 //"リソース指定:"
2688 SetDlgItemText(hwnd,IDC_IMAGE_SITUATION,STRING_IMAGEBOXPROP_STYLE_FROMRESOURCE);
2689
2690 SendDlgItemMessage(hwnd,IDC_RESOURCE,BM_SETCHECK,BST_CHECKED,0);
2691
2692 SendDlgItemMessage(hwnd,IDC_RESCOMBO,CB_RESETCONTENT,0,0);
2693
2694 if((ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&0x0000000F)==SS_ICON){
2695 //アイコンリソースをコンボボックスに挿入
2696 for(i3=0;i3<ProjectInfo.res.NumberOfIconRes;i3++)
2697 SendDlgItemMessage(hwnd,IDC_RESCOMBO,CB_ADDSTRING,0,(long)ProjectInfo.res.pIconResInfo[i3].IdName);
2698 }
2699 else if((ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&0x0000000F)==SS_BITMAP){
2700 //ビットマップリソースをコンボボックスに挿入
2701 for(i3=0;i3<ProjectInfo.res.NumberOfBitmapRes;i3++)
2702 SendDlgItemMessage(hwnd,IDC_RESCOMBO,CB_ADDSTRING,0,(long)ProjectInfo.res.pBitmapResInfo[i3].IdName);
2703 }
2704
2705 //リストから選択
2706 i3=SendDlgItemMessage(hwnd,IDC_RESCOMBO,CB_FINDSTRING,0,(long)ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].ImageCtrlInfo.path);
2707 SendDlgItemMessage(hwnd,IDC_RESCOMBO,CB_SETCURSEL,i3,0);
2708 }
2709 }
2710
2711 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&SS_NOTIFY) SendDlgItemMessage(hwnd,IDC_SS_NOTIFY,BM_SETCHECK,BST_CHECKED,0);
2712 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&SS_CENTERIMAGE) SendDlgItemMessage(hwnd,IDC_SS_CENTERIMAGE,BM_SETCHECK,BST_CHECKED,0);
2713 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&SS_RIGHTJUST) SendDlgItemMessage(hwnd,IDC_SS_RIGHTJUST,BM_SETCHECK,BST_CHECKED,0);
2714
2715 RadProperty_ImageBox_StylingOrder(hwnd,&ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
2716
2717 bInitial=0;
2718 break;
2719 case WM_COMMAND:
2720
2721 i=GetWndNum(GetParent(GetParent(hwnd)));
2722 if(i==-1) return 1;
2723 i2=GetWndInfoNum(MdiInfo[i].path);
2724
2725 //共通スタイル
2726 if(bInitial==0){
2727 if(DefaultItemStyles(hwnd,i,i2,wParam)) return 1;
2728 }
2729
2730 switch(LOWORD(wParam)){
2731 case IDC_IMAGE_TYPE:
2732 if(HIWORD(wParam)==CBN_SELCHANGE){
2733 //変更情報
2734 Rad_NoticeChanging(i,RAD_UNDO_STYLE,MdiInfo[i].MdiRadInfo->SelectingItem[0],ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
2735
2736 i3=SendDlgItemMessage(hwnd,IDC_IMAGE_TYPE,CB_GETCURSEL,0,0);
2737 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&=~(0x0000001F);
2738 if(i3==0) ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=SS_BLACKFRAME;
2739 else if(i3==1) ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=SS_GRAYFRAME;
2740 else if(i3==2) ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=SS_WHITEFRAME;
2741 else if(i3==3) ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=SS_ETCHEDFRAME;
2742 else if(i3==4) ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=SS_BLACKRECT;
2743 else if(i3==5) ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=SS_GRAYRECT;
2744 else if(i3==6) ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=SS_WHITERECT;
2745 else if(i3==7) ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=SS_ICON;
2746 else if(i3==8) ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style|=SS_BITMAP;
2747
2748 if((ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&0x0000000F)==SS_ICON||
2749 (ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&0x0000000F)==SS_BITMAP){
2750 //リソース/ファイル スイッチチェックを表示
2751 ShowWindow(GetDlgItem(hwnd,IDC_FILE),SW_SHOW);
2752 ShowWindow(GetDlgItem(hwnd,IDC_RESOURCE),SW_SHOW);
2753
2754 //イメージ状態テキストを表示
2755 ShowWindow(GetDlgItem(hwnd,IDC_IMAGE_SITUATION),SW_SHOW);
2756
2757 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].ImageCtrlInfo.type==IMGTYPE_FILE){
2758 //ファイル指定を表示
2759 ShowWindow(GetDlgItem(hwnd,IDC_PATH),SW_SHOW);
2760 ShowWindow(GetDlgItem(hwnd,IDC_CHANGEPATH),SW_SHOW);
2761 SetDlgItemText(hwnd,IDC_PATH,ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].ImageCtrlInfo.path);
2762
2763 //イメージ状態テキスト
2764 //"ファイル指定:"
2765 SetDlgItemText(hwnd,IDC_IMAGE_SITUATION,STRING_IMAGEBOXPROP_STYLE_FROMFILE);
2766
2767 SendDlgItemMessage(hwnd,IDC_FILE,BM_SETCHECK,BST_CHECKED,0);
2768 }
2769 else if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].ImageCtrlInfo.type==IMGTYPE_RES){
2770 //リソース指定を表示
2771 ShowWindow(GetDlgItem(hwnd,IDC_RESCOMBO),SW_SHOW);
2772
2773 //イメージ状態テキスト
2774 //"リソース指定:"
2775 SetDlgItemText(hwnd,IDC_IMAGE_SITUATION,STRING_IMAGEBOXPROP_STYLE_FROMRESOURCE);
2776
2777 SendDlgItemMessage(hwnd,IDC_RESOURCE,BM_SETCHECK,BST_CHECKED,0);
2778
2779 SendDlgItemMessage(hwnd,IDC_RESCOMBO,CB_RESETCONTENT,0,0);
2780
2781 if((ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&0x0000000F)==SS_ICON){
2782 //アイコンリソースをコンボボックスに挿入
2783 for(i3=0;i3<ProjectInfo.res.NumberOfIconRes;i3++){
2784 SendDlgItemMessage(hwnd,IDC_RESCOMBO,CB_ADDSTRING,0,(long)ProjectInfo.res.pIconResInfo[i3].IdName);
2785
2786 if(lstrcmp(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].ImageCtrlInfo.path,ProjectInfo.res.pIconResInfo[i3].IdName)==0)
2787 SendDlgItemMessage(hwnd,IDC_RESCOMBO,CB_SETCURSEL,i3,0);
2788 }
2789 }
2790 else if((ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&0x0000000F)==SS_BITMAP){
2791 //ビットマップリソースをコンボボックスに挿入
2792 for(i3=0;i3<ProjectInfo.res.NumberOfBitmapRes;i3++){
2793 SendDlgItemMessage(hwnd,IDC_RESCOMBO,CB_ADDSTRING,0,(long)ProjectInfo.res.pBitmapResInfo[i3].IdName);
2794
2795 if(lstrcmp(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].ImageCtrlInfo.path,ProjectInfo.res.pBitmapResInfo[i3].IdName)==0)
2796 SendDlgItemMessage(hwnd,IDC_RESCOMBO,CB_SETCURSEL,i3,0);
2797 }
2798 }
2799 }
2800 }
2801 else{
2802 //リソース/ファイル スイッチチェックを非表示
2803 ShowWindow(GetDlgItem(hwnd,IDC_FILE),SW_HIDE);
2804 ShowWindow(GetDlgItem(hwnd,IDC_RESOURCE),SW_HIDE);
2805
2806 //イメージ状態テキストを非表示
2807 ShowWindow(GetDlgItem(hwnd,IDC_IMAGE_SITUATION),SW_HIDE);
2808
2809 //ファイル指定を非表示
2810 ShowWindow(GetDlgItem(hwnd,IDC_PATH),SW_HIDE);
2811 ShowWindow(GetDlgItem(hwnd,IDC_CHANGEPATH),SW_HIDE);
2812
2813 //リソース指定を非表示
2814 ShowWindow(GetDlgItem(hwnd,IDC_RESCOMBO),SW_HIDE);
2815 }
2816
2817 RadProperty_ImageBox_StylingOrder(hwnd,&ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style);
2818 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
2819 return 1;
2820 }
2821 break;
2822
2823 case IDC_FILE:
2824 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].ImageCtrlInfo.type==IMGTYPE_FILE){
2825 //変更無し
2826 break;
2827 }
2828
2829 //変更情報
2830 Rad_NoticeChanging(i,RAD_UNDO_IMAGESTATE,MdiInfo[i].MdiRadInfo->SelectingItem[0],(DWORD)&ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].ImageCtrlInfo);
2831
2832 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].ImageCtrlInfo.type=IMGTYPE_FILE;
2833
2834 //ファイル指定を表示
2835 ShowWindow(GetDlgItem(hwnd,IDC_PATH),SW_SHOW);
2836 ShowWindow(GetDlgItem(hwnd,IDC_CHANGEPATH),SW_SHOW);
2837 SetDlgItemText(hwnd,IDC_PATH,ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].ImageCtrlInfo.path);
2838
2839 //リソース指定を非表示
2840 ShowWindow(GetDlgItem(hwnd,IDC_RESCOMBO),SW_HIDE);
2841
2842 //イメージ状態テキスト
2843 //"ファイル指定:"
2844 SetDlgItemText(hwnd,IDC_IMAGE_SITUATION,STRING_IMAGEBOXPROP_STYLE_FROMFILE);
2845
2846 SendDlgItemMessage(hwnd,IDC_FILE,BM_SETCHECK,BST_CHECKED,0);
2847 break;
2848
2849 case IDC_RESOURCE:
2850 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].ImageCtrlInfo.type==IMGTYPE_RES){
2851 //変更無し
2852 break;
2853 }
2854
2855 //変更情報
2856 Rad_NoticeChanging(i,RAD_UNDO_IMAGESTATE,MdiInfo[i].MdiRadInfo->SelectingItem[0],(DWORD)&ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].ImageCtrlInfo);
2857
2858 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].ImageCtrlInfo.type=IMGTYPE_RES;
2859
2860 //ファイル指定を非表示
2861 ShowWindow(GetDlgItem(hwnd,IDC_PATH),SW_HIDE);
2862 ShowWindow(GetDlgItem(hwnd,IDC_CHANGEPATH),SW_HIDE);
2863
2864 //リソース指定を表示
2865 ShowWindow(GetDlgItem(hwnd,IDC_RESCOMBO),SW_SHOW);
2866
2867 //イメージ状態テキスト
2868 //"リソース指定:"
2869 SetDlgItemText(hwnd,IDC_IMAGE_SITUATION,STRING_IMAGEBOXPROP_STYLE_FROMRESOURCE);
2870
2871 SendDlgItemMessage(hwnd,IDC_RESOURCE,BM_SETCHECK,BST_CHECKED,0);
2872
2873 SendDlgItemMessage(hwnd,IDC_RESCOMBO,CB_RESETCONTENT,0,0);
2874
2875 if((ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&0x0000000F)==SS_ICON){
2876 //アイコンリソースをコンボボックスに挿入
2877 for(i3=0;i3<ProjectInfo.res.NumberOfIconRes;i3++)
2878 SendDlgItemMessage(hwnd,IDC_RESCOMBO,CB_ADDSTRING,0,(long)ProjectInfo.res.pIconResInfo[i3].IdName);
2879 }
2880 else if((ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&0x0000000F)==SS_BITMAP){
2881 //ビットマップリソースをコンボボックスに挿入
2882 for(i3=0;i3<ProjectInfo.res.NumberOfBitmapRes;i3++)
2883 SendDlgItemMessage(hwnd,IDC_RESCOMBO,CB_ADDSTRING,0,(long)ProjectInfo.res.pBitmapResInfo[i3].IdName);
2884 }
2885 break;
2886
2887 case IDC_RESCOMBO:
2888 if(HIWORD(wParam)==CBN_SELCHANGE){
2889 //変更情報
2890 Rad_NoticeChanging(i,RAD_UNDO_IMAGESTATE,MdiInfo[i].MdiRadInfo->SelectingItem[0],(DWORD)&ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].ImageCtrlInfo);
2891
2892 i3=SendDlgItemMessage(hwnd,IDC_RESCOMBO,CB_GETCURSEL,0,0);
2893 SendDlgItemMessage(hwnd,IDC_RESCOMBO,CB_GETLBTEXT,i3,(long)temporary);
2894
2895 HeapDefaultFree(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].ImageCtrlInfo.path);
2896 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].ImageCtrlInfo.path=(char *)HeapAlloc(hHeap,0,lstrlen(temporary)+1);
2897 lstrcpy(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].ImageCtrlInfo.path,temporary);
2898
2899 DrawRadWindow(i,&ProjectInfo.pWindowInfo[i2]);
2900 }
2901 break;
2902
2903 case IDC_CHANGEPATH:
2904 if(HIWORD(wParam)==BN_CLICKED){
2905 if(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].ImageCtrlInfo.type==IMGTYPE_FILE){
2906 if((ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&0x000F)==SS_ICON){
2907 extern LPSTR IconFileFilter;
2908 //"アイコン ファイルを指定して下さい"
2909 if(!GetFilePathDialog(hwnd,temporary,IconFileFilter,STRING_IMAGEBOXPROP_GETPATH_ICON,1)) return 1;
2910 }
2911 else if((ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].style&0x000F)==SS_BITMAP){
2912 extern LPSTR BitmapFileFilter;
2913 //"ビットマップ ファイルを指定して下さい"
2914 if(!GetFilePathDialog(hwnd,temporary,BitmapFileFilter,STRING_IMAGEBOXPROP_GETPATH_BITMAP,1)) return 1;
2915 }
2916
2917 //変更情報
2918 Rad_NoticeChanging(i,RAD_UNDO_IMAGESTATE,MdiInfo[i].MdiRadInfo->SelectingItem[0],(DWORD)&ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[i].MdiRadInfo->SelectingItem[0]].ImageCtrlInfo);
2919
2920 GetRelationalPath(temporary,ProjectInfo.dir);
2921 HeapDefaultFree(ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo<