9年前windowsアプリケーションで文字入力BOX的なものを表示させたいのですが、どうすればよいのか全くわかりません。検索方法すらわかりません。ダイアログボックス作って、エディットコントロールを作成して、GetWindowTextなどで入力内容を取得して下さい。9年前ダイアログボックスを用いずに、画面にそのまま文字入力BOXを表示させることはできないのでしょうか?また、できないのであれば、CreatoWindow関数の次の部分がわからないのですが。CreateWindow("EDIT","",WS_CHILD|WS_VISIBLE,10,10,300,20,ココ,ココ,ココ,NULL);親ウインドウのハンドルを得るにはどうすればよいのでしょう?子ウインドウIDは、適当に付けても良いのでしょうか?この場合NULLでかまわないのでしょうか?ココ=hInstanceここには一体何を書けばよいのでしょうか?それとも、CreateWindow関数以外のものを使ってもっと簡単にする方法があるのでしょうか。ユーザーに日本語入力をしてもらってその情報を得たいだけなのですが・・・。(int)msg.wParam;}上記のコードでデスクトップにエディットボックスが直接出現します。フォーカスも合わせにくく、タスクマネージャでないと終了できないネタプログラムなんですけど・・・。親ウインドウのハンドルを得るにはGetParent()関数が使えます。子ウインドウのHWNDを指定すると親ウインドウのHWNDが返ります。IDは他と被らないように、適当で構いません、またNULLでも描写は可能です。hInstanceはインスタンスを指定してください、WinMain関数の第一引数です。GetWindowLong関数でも取得可能だったと思います。ダイアログボックスを用いずに、画面にそのまま文字入力BOXを表示させることはできないのでしょうか?また、できないのであれば、CreatoWindow関数の次の部分がわからないのですが。CreateWindow("EDIT","",WS_CHILD|WS_VISIBLE,10,10,300,20,ココ,ココ,ココ,NULL);親ウインドウのハンドルを得るにはどうすればよいのでしょう?子ウインドウIDは、適当に付けても良いのでしょうか?この場合NULLでかまわないのでしょうか?ココ=hInstanceここには一体何を書けばよいのでしょうか?それとも、CreateWindow関数以外のものを使ってもっと簡単にする方法があるのでしょうか。ユーザーに日本語入力をしてもらってその情報を得たいだけなのですが・・・。_)m私はダイアログボックスを使った方法以外の方法は知りません。親ウィンドウのハンドルは得るのは、どこでダイアログボックスを作るかによりますが、WinMain関数内で作るのであれば、hwnd=CreateWindow(親ウィンドウ);のhwndをそのまま渡せばいいだけです。ウィンドウプロシージャ内のWM_CREATEメッセージを受け取ったところで作るのであれば、ウィンドウプロシージャの第一引数のhwndを渡せばいいです。子ウィンドウIDには他の子ウィンドウと被らないのであれば基本的には大丈夫だと思いますが、ダイアログボックスとなると、ウィンドウを閉じたりしたときの戻り値が1とか0とかであり、被る可能性があったと思いますので100番以降を使っていれば問題ないのではないでしょうか。hinstanceにはインスタンスハンドルを渡せばいいです。nShowCmd)のhinstanceのことです。ダイアログボックスについては、http://www.geocities.jp/ky_webid/win32c/037.htmlこの辺などで調べてやってみてください。わからなければまた書き込んでいただければ、サポートできる範囲でサポートいたします。hWndParentに指定するためのウインドウハンドルはどうやったら知る事ができますか?つまり、自分自身のウインドウハンドルが知りたいのですが・・・。色んな方法がありますが、親ウィンドウを作成したときにそのハンドルを変数にでも入れとけばいいのでは?もしくは、ウィンドウプロシージャ内の引数から取得するとか。他にも関数で色々取得できるのでこちらのページを見てみてください。WaitKey();return(0);}http://www.geocities.jp/ky_webid/win32c/062.htmlにはFindWindow()について>>第1引数にウィンドウクラス名かクラスアトムを指定します。構造体などどいうものは聞いたことがありませんし、もちろん使った事もございません。何と言えばいいのかわからないのですが、なんとなく私の意図が伝わっていない気がします。追記:上記の構造体をそのままかくと投稿禁止用語(S●X)とみなされるので、半角スペースを入れました。9年前Windowsアプリケーションは「基となる基本的なウインドウ」の作成が必要です。このウインドウが親となります。基本的なウインドウとはダイアログベースであったり、右上に×ボタンや最大化最小化ボタンが付いたよく見かけるウインドウのことです。Windowsプログラムはこれらのウインドウを親として、子ウインドウをペタペタ貼り付けていきます。(ウインドウを複数生成する場合もあります)そして、エディットボックスは親とは成り得ません。エディットボックスはwindowsのコントロールであり、CreateWindow関数で作成するのですが、Editコントロールだけでは一般的にプログラムとして成り立たないのです。前述したとおり、エディットボックスをデスクトップに直接出現させるようなプログラムではプログラムの終了もできない、ウインドウの移動も出来ないで、全く使えないプログラムの完成です。私が何時も使っている雛形プログラムを以下に記載します。(int)msg.wParam;}これはWNDCLASS構造体を定義して親ウインドウの情報を登録した後にその情報を基に親ウインドウを生成し、その上にエディットボックスを作っています。WNDCLASSをきちんと登録しないでいきなりCreateWindowすると基礎情報が何もないので画面に表示されないが、プロセスにはきっちり登録される、ゾンビプログラムが出来上がります。9年前WaitKey関数が出てくるということはDXライブラリを使ってということですか?KeyInputString関数が使えるのでは?BOX的なものは自前で描かなければいけませんが。9年前やはりそうでしたか。自分は重要な何かを知らないな、という予想はついていたのですが、それが何なのかを知る術がありませんでした。なにはともあれ、これで実現できそうです。ありがとうございました。>>WaitKey関数が出てくるということはDXライブラリを使ってということですか?>>KeyInputString関数が使えるのでは?>>BOX的なものは自前で描かなければいけませんが。はい、たしかにKeyInputString関数を使えばできなくはないですが、日本語入力のときに右下に「全角ひらがな」と表示されるのが気に食わなかったので。ミクプラは自由にリンクできます。