- 締切済み
c++ で web browser
windows 7 32 vs c++ 2010 で web browser を作成しようとして躓いています windows xp 32 vs c++ 2010 で動いた 下記コードを 7 で実行すると CreateWindow されません。 ie_hWnd = CreateWindow("AtlAxWin", "Shell.Explorer.2", WS_CHILD | WS_VISIBLE, 0, 0, 500, 500, main_hWnd, NULL, GetModuleHandle(NULL), NULL); 何をどう変えれば 7 でも動くようになりますか? よろしくお願いします。
- mnb3jqgr4a
- お礼率50% (1/2)
- C・C++・C#
- 回答数2
- ありがとう数2
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- samtomsan
- ベストアンサー率55% (1060/1897)
「C++ AtlAxWin80」で検索したらいろいろ見つかりますね。 下記を見ると「CreateWindow( L"AtlAxWin90", L"Shell.Explorer.2",」となっていますが、XP は S-JIS で 7 は UNICODE だったと思いますので、その辺りも調べてみてください。 http://ohwhsmm7.blog28.fc2.com/blog-entry-90.html
- samtomsan
- ベストアンサー率55% (1060/1897)
下記によると 2010 では 「Visual C++ .NET では、ウィンドウ クラス "AtlAxWin" の名前が "AtlAxWin80" に変更されました。atl.dll でホスト コードを使用する場合は、"AtlAxWin" を使用できます。atl.dll は、Visual C++ 6.0 の DLL であり、現在の system .dll に該当します。」とありますが、この辺りはどうでしょうか。 (XPの2010では動いているのですよね) http://msdn.microsoft.com/ja-jp/library/1stby863.aspx
関連するQ&A
- ListBoxコントロール
hLB1=CreateWindow ("LISTBOX","",WS_CHILD|WS_VISIBLE|LBS_STANDARD, 0,0,300,150,hwnd,(HMENU)1,cs->hInstance,NULL); hLB2=CreateWindow ("LISTBOX","",WS_CHILD|WS_VISIBLE|LBS_STANDARD, 0,160,300,150,hwnd,(HMENU)2,cs->hInstance,NULL); という風に2つのListBoxコントロールを作っているサンプルを見たのですが (HMENU)1と(HMENU)2のところをともにNULLにしたら問題なのでしょうか。
- ベストアンサー
- C・C++・C#
- CreateWindow で作ったウィンドウが白いんですが
VC++ 6.0 で CreateWindow で作ったウィンドウが 白いんですが、これを、メッセージボックスと同じ色(鉛色?)にするにはどうしたらいんでしょうか。 あるいは、その逆、チェックボックス等に付属するテキスト文字の背景を白くできればそれでもかまいません。 (デフォルトで灰色なので) ↓ CreateWindow("BUTTON", "このテキスト背景が灰色", WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX, Window_Width, Window_Height, NULL, NULL, hWnd, NULL);
- ベストアンサー
- C・C++・C#
- ボタンの文字の大きさを変更したい
CreateWindow によるボタンを作成してみたのですが、 ボタンラベルとして貼る以下の "明朝" という文字の大きさを 変えるにはどうすればいいのでしょうか。 hButtonWnd1 = CreateWindow("BUTTON", "明朝", S_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 20, 20, 100, 30, hWnd, (HMENU)ID_MI, hInst, NULL);
- 締切済み
- C・C++・C#
- チェックボックスのテキストを背景に透過させるには?
VC++6.0です。 hCheckWnd = CreateWindow("BUTTON","checkbox", WS_CHILD | WS_VISIBLE | BS_CHECKBOX, 0,0,100,50, hWnd,NULL,hInst,NULL); で作成したチェックボックスのテキストが背景色から浮いてしまい困っています。 背景色に透過させるか色を指定して背景色と同色にするか出来ればいいのですが方法がわからずにいます。 宜しくお願いします。
- ベストアンサー
- C・C++・C#
- Tabでのフォーカス(win32)
edit = CreateWindow( TEXT("EDIT") , NULL , WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER | ES_LEFT , 0 , 0 , 35 , 18 , hWnd , (HMENU)1 , ((LPCREATESTRUCT)(lParam))->hInstance , NULL ); でエディットコントロールを作成しました。 フォーカスがエディットコントロールにある時、TABキーで フォーカスをなくしたいのですが、どうしたらよいでしょうか? デバッガーで追ってみると、WM_KEYDOWNがウィンドウに送られていませんでした。
- 締切済み
- C・C++・C#
- CreateWindowでSTATICコントロールを使ってBITMAP表示する。
WIN32、VC++2005にて開発中です。 CreateWindowでSTATICコントロールを使ってBITMAPを表示する方法が分からなくて困ってます。 ウィンドウプロシージャのWM_CREATEで、 下記の様に書いてみたんですがダメでした。 CreateWindowW(L"Static", L"***", WS_VISIBLE|WS_CHILD|SS_BITMAP,120, 3, 100, 45, hWnd, HMENU(-1), NULL, NULL); ビットマップはIDB_BITMAP1という名前で追加してリソースビューで確認しました。 CreateWindowで表示させたいんですがいい方法ありますか? 初心者でアホなんでなるべく解り易くお願いします。
- ベストアンサー
- C・C++・C#
- コントロール内の文字の背景色
hSWnd = CreateWindow("STATIC","あいう",WS_CHILD | WS_VISIBLE, 0,0,320,240,hWnd,NULL,hInst,NULL); に対して、 case WM_CTLCOLORSTATIC: hBrush = CreateSolidBrush(RGB(0, 255, 0)); return (LRESULT)hBrush; break; とすると、hSWnd は緑になるけど、hSWnd の あいう の文字の 背景色が白です。 その白の部分を赤にするソースを教えてください。
- ベストアンサー
- C・C++・C#
- TABによるフォーカス移動
実行環境: Microsoft Visual Studio 2005 質問: TABによるフォーカス移動が行えません。どのようにソースを変更すれば宜しいか教えてください。 以下ソース //ウィンドウプロシージャ LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { HINSTANCE main_inst; static HFONT main_hfont; main_inst = (HINSTANCE)GetWindowLong( hWnd, GWL_HINSTANCE ) ; static HWND hEdit1,hEdit2,hEdit3; switch (msg) { case WM_SETFOCUS: SetFocus(hEdit1); break; case WM_COMMAND: switch(LOWORD(wp)){ case ID_EDIT1: if(wp == VK_TAB) SetFocus(hEdit2); break; case ID_EDIT2: if(wp == VK_TAB) SetFocus(hEdit3); break; case ID_EDIT3: if(wp == VK_TAB) SetFocus(hEdit1); break; } case WM_CREATE: hEdit1 = CreateWindowEx( WS_EX_CLIENTEDGE, TEXT("EDIT"),NULL,WS_CHILD|ES_NUMBER|WS_VISIBLE|ES_AUTOHSCROLL, 106, 89, 158, 34, hWnd, (HMENU)ID_EDIT1, main_inst, NULL ); hEdit2 = CreateWindowEx( WS_EX_CLIENTEDGE, TEXT("EDIT"),NULL,WS_CHILD|ES_NUMBER|WS_VISIBLE|ES_NUMBER|ES_AUTOHSCROLL, 106, 143, 158, 34, hWnd, (HMENU)ID_EDIT2, main_inst, NULL ); hEdit3 = CreateWindowEx( WS_EX_CLIENTEDGE, TEXT("EDIT"),NULL,WS_CHILD|ES_NUMBER|WS_VISIBLE|ES_AUTOHSCROLL, 106, 198, 158, 34, hWnd, (HMENU)ID_EDIT3, main_inst, NULL ); CreateWindow( TEXT("BUTTON"),TEXT("起動"),WS_CHILD|WS_VISIBLE|BS_MULTILINE|BS_CENTER, 89, 301, 112, 40, hWnd, (HMENU)ID_BUTTON, main_inst, NULL ); main_hfont = CreateFont( -19, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, SHIFTJIS_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, PROOF_QUALITY, FIXED_PITCH|FF_MODERN, TEXT("MS ゴシック") ); SendDlgItemMessage( hWnd, ID_EDIT1, WM_SETFONT, (WPARAM)main_hfont, MAKELPARAM(TRUE, 0) ); SendDlgItemMessage( hWnd, ID_EDIT2, WM_SETFONT, (WPARAM)main_hfont, MAKELPARAM(TRUE, 0) ); SendDlgItemMessage( hWnd, ID_EDIT3, WM_SETFONT, (WPARAM)main_hfont, MAKELPARAM(TRUE, 0) ); SendDlgItemMessage( hWnd, ID_BUTTON, WM_SETFONT, (WPARAM)main_hfont, MAKELPARAM(TRUE, 0) ); break; case WM_DESTROY: PostQuitMessage(0); break; default: return (DefWindowProc(hWnd, msg, wp, lp)); } return 0; }
- 締切済み
- C・C++・C#
- オーナー付きウィンドウと子ウィンドウについて
http://web.kyoto-inet.or.jp/people/ysskondo/chap7.html のサイトで気になったのですが、 このサイトの hChildWnd=CreateWindow( "SubWindowClass","子ウインドウ", WS_CAPTION|WS_THICKFRAME|WS_CHILD, 10,10,200,100,hwnd,(HMENU)1, cs->hInstance,0); の|WS_CHILDを消すと if((hOwnedWnd==NULL)||(hChildWnd==NULL)) return -1; のところで終了してしまうのですが、 なぜなのでしょうか?
- ベストアンサー
- C・C++・C#
- 1つのウィンドウに2つのエディット
case WM_CREATE: GetClientRect(hWnd, &rc); EditL = CreateWindow( TEXT("EDIT") , NULL , WS_CHILD | WS_VISIBLE | WS_HSCROLL | WS_VSCROLL | ES_AUTOHSCROLL | ES_AUTOVSCROLL | ES_LEFT | ES_MULTILINE , 0 , 0 , rc.right / 2 , rc.bottom , hWnd , (HMENU)1 , ((LPCREATESTRUCT)(lParam))->hInstance , NULL); EditR = CreateWindow( TEXT("EDIT") , NULL , WS_CHILD | WS_VISIBLE | WS_HSCROLL | WS_VSCROLL | ES_AUTOHSCROLL | ES_AUTOVSCROLL | ES_LEFT | ES_MULTILINE , rc.left / 2 , 0 , rc.right , rc.bottom , hWnd , (HMENU)2 , ((LPCREATESTRUCT)(lParam))->hInstance , NULL); return FALSE; とすると、1つのエディットしか表示されません。 また、 case WM_SIZE: GetClientRect(edit, &rc); MoveWindow(edit, rc.left, rc.top, rc.right, rc.bottom, TRUE); として、ウィンドウサイズが変更された時に どちらのエディットもクライアント領域にあわせたつもりなのですが、 サイズ変更で左側のエディットがスクロールバーの幅の分だけ 縮小されてしまいます。 どこをどのように直したらよろしいのでしょうか? 宜しくお願いします。 #Win98 & VC++6.0 & SDK で作成しています。
- ベストアンサー
- C・C++・C#
お礼
返答が遅れ申し訳ありませんでした。 結果から報告させていただきますと、教えていただいた方法でも解決には至りませんでした。 教えていただいたことを糸口に検索の幅を広げ Atlヘッダーファイルの CreateControlEx に問題がありそうだ、と言うことまではわかったのですが CreateControlEx の何がいけないのかまで突き止めることはできませんでした。 windows7 特有のセキュリティに引っかかっているのではないかとも考え検索してみたものの、それらしい記述を発見することは出来ませんでした。 折角お時間を割き、ご返答いただけたのに申し訳ありませんでした。 もう少し知識を深めてから再度 チャレンジしてみようと思います。