C/C++でのWindowsPrograming議論スレ(質問お断り)
前スレのテンプレをそのまま使おうとしたら、サブジェクトが長すぎて
スレ立てられなかったので、可能な限り短くしてみました。
その前に重要なこと
「C++でWindowsProgrammingをする意義があるのかどうか」
と言うことについて議論しましょう。
>>3 VisualC++で用意されている以外のコントロールを
使いたい場合や標準的な動きでは無い挙動等を
実現したい場合なんかは、C/C++でプログラムするのが
一番、最適だと思うんだけど…
それとも、CかC++かって事?
>>3=5=6
荒らし?
曖昧な質問しておいて「何を訳の分からんことを。」とは??
何がC++でWindowsProgrammingをする意義があって
何がC++でWindowsProgrammingをする意義が無いのか
自分で答えてから質問したら?
C++でWindowsProgrammingをするんなら普通MFCかWTL(ATL)使うだろ。
使わないとメッセージループさえ小汚い書き方しかできないし。
"Programming" "Programing"
最初のテーマ 「VisualC++で用意されている以外のコントロールを使いたい場合」
いいテーマだと思うのだが、いきなり高レベル過ぎるかもしれない。
まあ正確には 「非コモンコントロールを使いたい場合」 だ。
例えば、デスクトップやリストビュー(大きいアイコンモード?)のような物を自作したいのだが、どうやって作ろうかな。
これが巧く出来れば、将棋やチェスなどのコマを動かすゲームに応用できる。
他にも、ユーザが自分の好きな場所にボタンを配置してカスタマイズできるアプリにも。
上記のコントロールは議論されなくても良いから(俺が勝手に考える、で良い)、
何か新しいコントロールの案を出してみて。
「猫でも・・・」の章に沿って議論するってのも面白いかもしれない。
途中から議論に加わっても、ついて来易い。
12 :
デフォルトの名無しさん:03/04/08 19:34
>>8 PhotshopやFlash等の市販アプリも秀丸やBeckyInternetMail等のシェアウェアも
MFCを使ってないんだけど…。
結局、MFCもWTLも型にはまったアプリは作成しやすいかもしれんが
一旦、型を外れると使わないで書いた方が効率が良いという罠。
その効率は人に因る。スレ違いの話題はしないでクレ。
MFC と 非MFC の争いは他でやってくれ。
>>10 漏れはボタンとラジオボタンとチェックボックスは、自分で自作した。
マウス移動と押・離が判別できてビットマップが描画できれば
そんなに苦労する物でも無いと思うし…。画面のプロパティの
デザインの配色・サイズ等に全て合わせるのは、ちょっと面倒くさいが、
最大のメリットは「システムリソースを消費しない」って事かな。
スタッティックやグループボックスは直接書いてる。
ボタンが2画面にわたって、1000個以上あるってやつを組んだ事
あるんだけど、その時に作成した。
でも、今でも使ってる。結構、便利だよ応用効くし。
ちなみにBecky!はMFC使っているが。
おお、こんなスレがあったのか。じゃあ、俺の話を聞いてくれ(w
>>14 俺も自分でボタンコントロールを作った。↓こんな感じで
HANDLE CTL_CreateButton(HWND hWnd,LPSTR cText,
UINT uX,UINT uY,UINT uWidth,UINT uHeight,WORD wMsg);
内容はマウスメッセージをフックして、あとはhWnd上に指定された
座標で押されたらhWndに対してWM_COMMANDをLOWORDに
wMsgを入れてsendMessageするって、だけなんだけど。
開放はBOOL CTL_DestroyButton( HANDLE hButton );で開放。
PhotoShopとかも、自前コントロールを使ってるみたいだね。
現在の弱点(課題?)は、WindowsXPのスキンにどう対応したら
良いのか…という事かな。
すげーな。自前コントロールって以外にメジャーだったんだな。
お前らスゲーよ。
> 最大のメリットは「システムリソースを消費しない」って事かな。
これ良く分からん。コモンも自前も同じようにリソースを消費すると思った。
> 内容はマウスメッセージをフックして、あとはhWnd上に指定された
プロシージャーに色々書き加える、でなくフック?
子ウィンドウをちょいちょいと工夫するだけで出来ると思ってた。
実際には大変なのだな。
まあ、俺がフックは面倒だと思っているからなのだが。
まさか "BUTTON" をフックしただけで「自分で」とは言わないだろうけれど。
自前コントロールつくる場合、俺は codeguruで要求に近いサンプルを手に入れて、
余計な機能削ったり、必要な機能付け加えたりするパターンが多いっす。
( ゚Å゚)ホゥ
>>19 俺もそう。海外のサイトはplanet source codeやcpde projectとか優れすぎたコード
いろいろあるよね。日本でサンプルコード載せたHPやってる個人ページは
ほとんど海外のパクリであまり勉強にもならんし。
>>12 一旦、型を外れると使わないで書いた方が効率が良いという罠。
はい、それはない。
MFCはともかく、WTLはコンドーム並みに薄い皮でラップしただけ。
operator HWND()をはじめとして、基本的に生APIと互換が取れてる物ばかり。
美味しいところだけ頂けるのに、なんで効率が落ちる?
>>19,21
海外のサイトは、あまり見てないなぁ。
全部、自分で考えた物なんで、結構、恥ずかしい事してるかも。
でも、ボタンを押した状態でマウスボタンを離さず移動した時の
挙動とか、その状態で戻ってきて離したりとか…。考えると
深いよね。あ、あと、TABオーダーとかもあるか。
>>18 >これ良く分からん。コモンも自前も同じようにリソースを消費すると思った。
今、テストしたら、ボタンを12000個作ったあたりで、リソースが
無くなりました。こうなると、他のアプリもコントロールが作れなく
なります。テストしたのはWin2000だけど、Win9x系だと、もっと
シビア。1000個位で作れなくなるんじゃないのかなぁ。
単純に計算しても1つメモリ100byte食ってるとしても2万個作ったと
しても2M。メモリが足らなくなる訳が無い。
システムリソースは限られたシステムのスペースなので
なるべく使わないのが吉かなーと思う次第です。
> 子ウィンドウをちょいちょいと工夫するだけで出来ると思ってた。
いや、子ウィンドウを工夫するのでは無くhWnd上に直接描画します。
当然、hWndのプロシージャーに色々書き加える事でボタンを作成
できますが、汎用性を高める為に、なるべく隠ぺい化する事を
考慮してフック等を使ってます。こうする事で、いままでのボタンを作る
時にCreateWindow("BUTTON",~ってやっていたのを
CTL_CreateButton(~に置き換えるだけで、自前ボタンに
なるという事がメリットです。
>>23 1必死だな。
どうせ重複スレなんだから、どんな使い方しようが自由だろ
>>3=5=6=8=15=22=26
放置の方向で(y/Y)?
そういえば、自前のコントロールで思い出したけど
DrawFrameControlというAPIがあるんだけど、
これ使えばボタン描画が楽々だ~…とか思ったけど
フォーカス持ったボタンとか駄目なんだよね。
結局、フォーカス持ったボタンの描画を考えると
他のも全て描画するのも労力が変わらないんだよね。
MSは、なんでこんなAPI作ったんだろう。
誰か使ってる人いる?<DrawFrameControl
>>28 あ、DrawFocusRectがあるけど、これもまた使えないんだよね。
使ってみるとわかるけど、本物(?)のボタンコントロールと
微妙に挙動が違うんだよね。うまく言えないけど、本物のボタン
コントロールとビットマップを並べて比べてみるとわかる。
…でも、そこまで同じにする事ないのかな。
30 :
デフォルトの名無しさん:03/04/08 22:31
FLTK
FOX
既存の SDK アプリをテンプレとして使うのと MFC 使うのとで差はあるか?
.Net Framework は?
なんと! 直接描画だったのか! 目から鱗とまではいかないが!
「自前コントロールって言っても、どうせ子ウィンドウの変形だろ」と思っていた自分が馬鹿だったのだ!
34 :
デフォルトの名無しさん:03/04/09 00:43
自前コントロール懐かしい...
MFCが糞だったWin3.1時代にツールバーもどきを作ったのを思い出した。
あの頃はプログレスメーター作るのも面倒かったよなぁ。
>>19,21
教えて君で申し訳無いんだけど、その「海外」の「自前のコントロール」の
ソースがある所を教えて欲しいんだけど。
codeguru, planet source code, cpde projectで検索したんだけど
目的の「自前のコントロール」の場所がよくわからなかった。
自前コントロールってペゾルド本に出てるようなカスタムコントロールじゃなくて?
FindFirstFileが使いにくすぎ。
つーかAPI全般がC用なのでC++に向かないのが難点。
GTKに対するGTK--のように、
WindowsにもWin32APIに対するWin32API++が必要だ。
そうか?
>>37 そのためのWTL
でもこのスレで持ち出すとスレ違いと言われる罠
GetDlgItemTextとかでサイズとか指定しなくても、
std::stringで受け渡しができるようになったらなあ…
>>28 使ってるけど(C/C++じゃなくてVBで)、
Windows標準に合わせ易いっていうメリットはどうよ?
色とかハイコントラストとか。
DrawFrameControlってXPルックとかにも
自動的に対応してくれるの?
良スレの予感
コントロールの自作ってことは当然CreateWindowExして
自分で配置するんだろうなー。
ダイアログリソースなんて軟弱ですか?
リソース(*.rcのことね)ってIDが実行ファイル毎だから
困るけど、MoveWindowで揃えるのもかったるいしー。
RegisterClassEx
CreateWindowEx
BeginPaint
SetWindowLong
SetScrollInfo
CreateCaret
これら関数を常用するようなら、
そこの貴方もコントロール自作してみてはどう?
>>44 よく読め。CreateWindowEx使ってるうちはまだ軟弱
(リソースの節約にならない)
SwingやGeckoやIEみたいにすべて自前描画。これ。
48 :
デフォルトの名無しさん:03/04/10 14:35
>>46 CreateCaret って事は自前のエディットボックスもやったのか?
さすがにそれは面倒だからやらんかったなぁ...
表形式の物作る場合は入力用のコントロールを動かせば済むから...
あぼーん
HTML は読めなくてもいいから、ブラウザの描画・配置能力だけほしいって思ったことねぇ?
あのCSSでボーダーやフォント・背景色が自在に変えられるのは便利。
フォーム関連と、改行等だけに絞れば結構小さく作れないかな・・・。
プログラム側の使用に限定すれば文法エラー処理なんかも適当でいいし。
XML名前空間とか実装が面倒そうなのは無視して。
>>47 IEみたいに自分が設計したOS上で自前コントロールって
やっぱり変な会社だ。使えないって事を自分で言ってる
ようなもんだ。
やはり、自前描画、自前コントロール。作った所も認めてる(w
>>50 剥げ同。
HTMLだと無駄が多いから、
構造体の配列とかで実装してほしい。
>>51 HTML/CSSの仕様書読んだ事ある?
あの仕様というか推奨動作に合うように作るには、
独自でないと無理だと思われ。
また、MSとしても下位互換性の問題があるから、
下手に変更加えたり出来ないんでは?
VS.netでわざわざウェブフォームなんて作ったのもそれが根源でしょ。
>>52 いや、HTMLの部分じゃなくて、履歴のウィンドウとか色々な所で
明らかに標準のコントロールじゃないのが、使われてるでしょ。
Officeなんか…(以下略)
それらはちゃんとウィンドウ作ってる
ウィンドウ作らないのはHTMLの部分。
言いたいことはわかるけど揚げ足取りに近いよ
正直MFCなどでフックを使ってサブクラス化するのはやめてほしい
Visual Studioでどんどんカコイイコントロールを使うのはいいんだが、
どうせならMFCや.NETで同じものを提供しほしい。
>>53(51)
Spy++で調べたことある?
たしかにサイズ変更枠の部分はBaseBarというオリジナルクラスだが、
その中はレバーコントロールを使っていて、
「履歴」という文字列、バツ印、や
「表示(W)」等のメニューは、ツールバーコントロールを使っている。
また、履歴のリストはツリービューコントロール使ってる。
ので、ほとんど独自ではないぞ。
それと、HTML表示するのにウィンドウ作ってたら、
フォームとボタンを大量にあるページの描画は極端に遅くなるし、
ひょっとしたら、それを悪用してブラクラを作れるかもしれない。
ieが5.5から複数フレームから成るページをも、
1つのウィンドウで表示できるようにしたのはその為では?
>>53 Officeは特別な存在で、
Mso9.dllとかがコモンコントロールの代わりのように使われてる。
でもこれは、時期ウィンドウズに搭載される(であろう)UIを、
その前に、そして以前のウィンドウズにおいても、
エンドユーザに提供するためでは、と思っている。
まあ、ある意味実験台かもな。
MFCとしては提供されないがAPIとしては提供されるな
ところでさ、みんなでMFCみたいなライブラリ作らない?
Mona Foundation Class って名前で。
略称が MFC になってしまうのが駄目なら、
Giko Foudation Class でもいいけど。
作る気は無い? ああ、それでは帰ります。
スレッドを汚して申し訳ありません。
>>60 名称は置いとくとして、
適当に作るとMFC相当以下のライブラリができる、
つまりは車輪の再開発になってしまうのでは?
>>60 でも、C/C++から使える拡張コモンコントロールみたいなのは、
(機能が被ってなければ)歓迎する。
あら、レスがついてしまいました。
個人的には WTL のような物が好みなのですが、
サクッと軽く作る、程度の物ではないですよね。
MFCも。
スレ汚しの自分に構ってくれてありがとう。
もう帰ります。
WTLのようなものが好みならWTLを使えばいいんじゃないか。
WTLの拡張とか修正とかならアリかもしらんが。
それよりはフリーなコントロールのほうが興味あるな。
>>64 剥げ同。
はっきり言ってウィンドウクラスを目的にあわせて一々作るのは、
労力と見返りがちっともペイしない。特にフリーウェアだともう(中略
それ以外の処理は、目的に合わせて字目で暮らす作ったほうが早いし、
便利だし、実行速度も速い場合がほとんどなんだけどねぇ・・・
s/字目で暮らす/自前でクラス/g
うちのマシンのaキーは反応が悪くてよくtypoする
Byte数を要求する関数は全部ラップしといて
template<typename T>
inline T* memcpy_s( T* dst, const T* src, size_t elem_cnt )
{ returns std::memcpy( dst, src, sizeof(T)*elem_cnt ); }
かならずそっちを使うようこころがける、とかしか無いんでない?
うがー。ごばくスマソ。
73 :
デフォルトの名無しさん:03/04/17 12:13
ごめんよ>Microsoft Natual Keyborad Eliteのaキーさん。
ところで、独自コントロール作るなら、
フレームは外せないよな。
で昔、階層構造が可能なフレームコントロールを作ったんだが、
誰か要る?
(^^)
76 :
デフォルトの名無しさん:03/04/17 16:27
山崎渉 マジUzeeeeeeeeee!!
77 :
デフォルトの名無しさん:03/04/18 02:43
FLTKとかFOXとかwxWindowsじゃあかへんの?
78 :
デフォルトの名無しさん:03/04/18 11:32
お前らVisualStudioみたいな糞使ってないで
ProjectBuilder使えよ
ProjectBuilderの方が絶対に使いやすいし、GUIやエディタのフォントも綺麗
VisualStudio買う金で、Macを買えば無料でVisualStudioを超える最高の開発環境が付いてくるぞ。
今時Winで開発してる奴は浪費家かバカのどちらかだね!
スレの主旨を理解できない奴に限ってここ見つけちゃうんだよな
>>77 独自ライブラリを使ってたり等、
コモンコントロールと挙動・使い方が異なるクラスはいただけない。
ところで、哀れな
>>78が居るスレはここですか?
>>78は違うスレで何度か見たよ。
ただのコピペみたい。
wxWindowsはコントロールはネイティブのものを使ってたような
お前らVisualStudioみたいな糞使ってないで
ProjectBuilder使えよ
ProjectBuilderの方が絶対に使いやすいし、GUIやエディタのフォントも綺麗
VisualStudio買う金で、Macを買えば無料でVisualStudioを超える最高の開発環境が付いてくるぞ。
今時Winで開発してる奴は浪費家かバカのどちらかだね!
∧_∧
( ^^ )< ぬるぽ(^^)
90 :
デフォルトの名無しさん:03/04/20 23:31
ラジオボタンやチェックボックスって、
[*] テキスト(&A)
な形式ですけど、ラベル文字列 + エディット/コンボボックスだと普通
テキスト(&A) [入力文字列|▼]
と、説明文を前に置きますよね?つまり前後が逆。
混在するダイアログを作る時、テキストを揃えたいと思ったら、皆さんどんな揃え方をします?
91 :
デフォルトの名無しさん:03/04/20 23:38
スレタイの「質問お断り」が効果を発揮したことってあるんだろうか。
>>90 >テキストを揃えたいと思ったら、
思わない。
HWNDをハウンドと呼ぶとカッコイイことに気づいた。
>>96 NullPointerExceptionを「ぬるぽ」と呼ぶのと同じくらいカコイイ
100ゲットオオォォ!!
 ̄ ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄
. ∩ ∩
~| ∪ | (´´
ヘノ ノ (´⌒(´
((つ ノ⊃≡≡≡(´⌒;;;≡≡≡
 ̄ ̄ ̄(´⌒(´⌒;;
ズザーーーーーッ
>>100 かわいい…。
でも、チンコ立ってるようにも見えるね。
102 :
デフォルトの名無しさん:03/04/29 00:46
定期age
お前らMFCみたいな糞使ってないで
VCL使えよ
VCLの方が絶対に使いやすいし、真のビジュアル開発だ
VisualStudio買う金で、C++Builder買えばMFCとは比べ物にならない最高のクラスライブラリがついてくるぞ。
今時MFCで開発してる奴は浪費家かバカのどちらかだね!
vclってObjectPascalで書かれてるんだよね。
C++言語なのにC++で書かれてないクラスライブラリってなんか嫌だよね。
最高のクラスライブラリって例えばどんなの?
真のビジュアル開発って例えばどんなの?
ボタンダブルクリックするとコードが出てくるようなのが
ビジュアル開発だとしたら、そんなもんはいらないけど。
VCLよくわからんけど、ぐぐったかぎりではVCLとsqeakは無関係だな
1
>>108 VCLみたいなみせかけのビジュアルではなく
真のビジュアル開発環境は無いのかって話じゃないの?
僕がいまのところビジュアルだなって思うのは
simulinkみたいなブロックをつなげて行く感じのやつかな。
ソフトシンセサイザー系でも似たようにブロックをつなげて
シンセを作っていくのもあるし、CG系でも同じくそういうものがある。
ユーザーインターフェースは優れてると思う。
>>58 確かにMFCもそもそもの始まりはOffice開発で作ったクラスライブラリを
市販したようなことを聞いた。
>>112 行ってみたけど、ここより話が進んでないな。
クソ書き込みばっかりで。
それに、ここはWindowsProgrammingノウハウスレであって
コントロールを作るスレでは無い。
クレクレ君のスレと一緒にするな。
って、いうか
>>112が、そのスレの
>>1でしょ?
Window XPの登場で再実感したけど、
WM_PAINTが絡む汎用クラスは、
MSが用意してくれるのを待った方がいいと思う。
実際、独自クラス使ってるソフトはXPスタイルなのに
クラシックスタイルだったり、
果ては正しく描画されてなかったりするんだよな。
そういえば、C、Win32APIを勉強始めた頃、
CSSのsolid、inset、outsetなんかを適用できる
DrawBorderEx関数とか作ってたな(w
あの関数、今頃何処に居るかな・・・
> 実際、独自クラス使ってるソフトはXPスタイルなのに
> クラシックスタイルだったり、
それ、いいやん
> 果ては正しく描画されてなかったりするんだよな。
そんなのもあるけど、商用だと十分なレベルのもあるよ。
>>119 >それ、いいやん
ユーザの意向を反映しないUIのどこが良いのか説明してくれ。
大体、なんで"独自の見た目"にしたいのかわからない。
アプリケーションのUIなんて所詮、
他のアプリケーションに合わせとくのが一番なのに・・・
>>120 マイクロソフトがユーザーの意向を完全に反映した UI を作っているのか説明してくれ。
ここでいう「ユーザーの意向」ってのは
XPスタイルにしたいかクラシックスタイルにしたいか、
って程度の意味だろ。
XPスタイルを選んでるのにクラシックスタイルで表示する
アプリケーションは明らかに「ユーザーの意向」を
反映していない。
>>121 > 6:一見関係ありそうで関係ない話を始める
> 「ところで、カモノハシが卵を産むのは知っているか?」
>>122 そういう操作性に一貫性がなくなる仕組み(スタイル)を導入するのが
「ユーザの意向」 を反映していない。
オペレータに対する教育コストや、各端末の初期設定を揃えるコストがかかる企業もあるんだよ。
>>124 いらない機能は使わなきゃいい。
この話とは別だよ。
>>124 では、初めて買ったコンピュータがMicrosoft® Windows® XP搭載機で、
XPスタイルがOnになっていたらどう?
または、1年近くXPスタイルで使い続けていたら?
この場合、クラシックスタイルなプログラムは、
使いにくい以外の何者でもない。
そもそも
>そういう操作性に一貫性がなくなる仕組み(スタイル)を導入するのが
>「ユーザの意向」 を反映していない。
はMicrosoft®が考えるべき事であって、
必要ならばクラシックスタイルが使えるのだからさほど問題ない。
127 :
デフォルトの名無しさん:03/05/17 01:29
VC++でダイアログリソースを作成後、CreateWindowを使って
ウィンドウを作成できる?CreateDialog使わずに。
つか、普通のWM_CREATEとかを送ってほしいだけなんだけど。
128 :
デフォルトの名無しさん:03/05/17 23:15
age
>>126 > >「ユーザの意向」 を反映していない。
> はMicrosoft®が考えるべき事であって、
> 必要ならばクラシックスタイルが使えるのだからさほど問題ない。
だからMicorsoftは考えてないんだって、ユーザーの事なんて。
考えてんのは金のことだけ、金金金金金金金金!
>>127 なんでWM_CREATEが必要なの?
WM_INITDIALOGでは事足りないのか?
>>129 >だからMicorsoftは考えてないんだって、ユーザーの事なんて。
>考えてんのは金のことだけ、金金金金金金金金!
それとこれとは全く別の話。なんで混同するんだ?
もう一回貼っとくか
> 6:一見関係ありそうで関係ない話を始める
> 「ところで、カモノハシが卵を産むのは知っているか?」
>>130 ようするにコントロールの作者に関する話をしていて
Microsoftの話なんか誰もしていないのに
必死で話をそらしたがる詭弁家が約一名いるってこった
> そういう操作性に一貫性がなくなる仕組み(スタイル)を導入するのが
アプリケーションが対応していれば別に一貫性はなくならない。
対応していないものを偶然動くからといって
無理に入れて言いがかり付ける馬鹿のことまで知るか。
WinXPが出る以前に作られたソフトがWinXP上で起動すると
XPスタイルと協調性がとれていないのは理解できるが、
最近、Win98/Me/NT/2000にインスコすると無理やりXPスタイルで
表示するソフトが結構多い。これは、漏れは理解できん。
特にプリンタやグラフィックやサウンドの常駐アプリとかが、
こうだった時には…。
135 :
デフォルトの名無しさん:03/05/19 17:56
>>134 フレッツ接続ツールVer.2とかがそうだね。
しかも、フレッツ接続ツールの場合、WinXPは標準で実装している
PPPoe機能を利用して接続できる訳だから、
フレッツ接続ツールを使う奴はWin98/Me/NT/2000の人達が多いと思うのだが?
それでWinXPスタイルとは何考えてるんだか
フレッツクスウェアとインターネット、
同時接続するのに必要なんだとか>フレッツ接続ツール
>>132 >Microsoftの話なんか誰もしていないのに
>必死で話をそらしたがる詭弁家が約一名いるってこった
同意。マとは思えない程、低脳に見受けられるのが1名。
こんどひまつぶしにおりじなるこんとろーるをつくることにします
おうえんよろしくおねがいします
138 :
デフォルトの名無しさん:03/05/23 14:52
標準のディレクトリ選択用のコントロールが最悪なんだが、
みんなあれ使ってるの?
フリーソフトとか市販ソフトが使ってるかどうかみれば分かるだろ
あれで間に合うならあれ使うし、不足なら作るし、
>>139はバカか?
ディレクトリ選択は手抜きフリーソフトでは使っているものが多いが、M$自身は使っていない
つまり標準で付いているものは糞だから、糞コントロールのラッパーライブラリなど使わず自分で作るしかない
だからUIの統一もへったくれもない
というのを上の方の話題の結論にしたかったので聞いてみただけ
|-`).。oO(ListBox、SHBrowseForFolderのどちらだろう…)
MSが使ってないから糞という根拠自体がなんとも
(´-`).。oO(SHBrowseForFolderはコントロールとはいわないだろう…)
(゜Д゚) <なんだか意味不明
|-`).。oO(スマソ
>>145。SH~が出来たからイラネということのような気も)
>>139 不満ならTreeViewとItemIDList使って作れよ。
>>143 ディレクトリ探すのにListViewですか・・・
>>148 ちゃんとスレに目を通してから書き込んだ方がいい
>>149 1から全て呼んでますが何か?
つまりね、ある程度スキルが着くと
みな独自コントロールに手を出したがるの。
でもね、一度作ってみればわかるけど、
よほどシンプルなコントロールで無い限り、
"くたびれもうけ"になってしまう訳。
しかもよほど手間隙掛けたものでない限り、
MSのそれと挙動が違ってしまうので、
ユーザにはストレスが溜まる。
つまり、
>>137のようにちょっと暇なぐらいで
作れるような代物ではないってこった。
s/呼んでますが/読んでますが/g
∧_∧
ピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎――◎ 山崎渉
155 :
デフォルトの名無しさん:03/06/02 18:41
質問お断りだと伸びないな。
これからは質問ありということで。
157 :
デフォルトの名無しさん:03/06/02 19:26
質問お断りで議論しろってのが無理ではないかと。
1がお題を発表するならできなくもないが。
質問というよりも、「こういう場合どうしてる?」みたいな事を
自分の現在とってる方法と一緒に書き込めば良いと思うのだが…。
それを質問という。
言うだろ
「こういう場合どうしてる?」を質問というかいわないかを
言い合うスレになりますた。
相手の意見を聞いたり、自分の意見を相手がどう思うか問うのは
スレにそぐわないので禁止です。
ええっと、1です。
前スレも見てもらえると、わかると思いますが
>>159さんが書いているように、自分の現在とっている
方法(「動かない」とか「意図しているように機能しない」は×)が
示されている上での、疑問はOKだと思っています。
もし次スレに行くような事がありましたら、次は1に書いておきます。
しつもん【質問】
―する
分からない事や知りたい事について、相手がそれに応じたことを述べるように求める△こと(言葉)。
Shin Meikai Kokugo Dictionary, 5th edition (C) Sanseido Co., Ltd. 1972,1974,1981,1989,1997
166 :
デフォルトの名無しさん:03/06/08 04:34
1来てたね。再開。
167 :
デフォルトの名無しさん:03/06/08 16:27
Windowsアプリケーションを作るならWTL/ATLが最強であることを主張します。
168 :
デフォルトの名無しさん:03/06/08 16:36
こういう場合どうしてる?
ではなくて
こういうばあいは俺はこうしてるけど他の奴もこうしてるに決まってるから
これはこうするに決まってるな
と言えばしつもんじゃなくなる
>168
人はそれを「自問自答」というがな。
>>169 つーか、単なる独り善がりの可能性のほうが高いんじゃないか ?
>>168-170 >>164で1がこのスレの「質問」についての定義を追加してるだろ。
広い意味での「質問」なんて、誰も聞いてない。それこそスレ違い。
それとも、単なるスレ荒らし君か?
つーか前スレの最後読めばすぐわかるんだけどな
173 :
デフォルトの名無しさん:03/06/15 15:32
…という訳で、新たな疑問きぼんぬ
174 :
デフォルトの名無しさん:03/06/15 18:48
新たな疑問…じゃあ、こんなのどう?
スプリッターを移動させる時に描画する、アミカケ(チェス板状に1ドット置きでxor 0xffffff)
ってどうやって描画するのが一番効率いい?
今はDrawFocusRectで2ラインずつ描いてるw
CreatePenで波線ペン作ってLineTo
効率が良いか、わからんけど全画面をキャプチャして
必要な部分だけ再描画。速さは1番だと思う。
>>174 確かに独自ウィンドウとか作ると移動処理も自分で描画しなくちゃ
いけなくなるよね。漏れはbitbltで反転描画で逃げてるけど
網掛けで描画するのは、どうするのが効率的かなぁ。
必要な部分( 幅x2ドット 2ドットx高さ ) x 2(上下or左右)の4つの
部分をデスクトップから取ってきて網掛け処理してデスクトップに
直接描画かなぁ。
どっちにしろ、デスクトップに直接描画するしか無いよね…。
>>176が言ってるのは、もしかして、その瞬間に全画面分の
ウィンドウを手前に作成するとか?
それで思いつきましたが、2x2のパターンをブラシ or メモリビットマップにして、
BitBltで描画先とのxor…ってのもありですね。
DrawFocusRectもそうだけど、xor描画だと二回描けば戻るので元の画面を待避させる必要なし。
LineToだと、キャプチャしかないのかな?
>>178 > LineToだと、キャプチャしかないのかな?
xorするペンがあったような
xor使えば、消す時も楽だね
同じ事をもう一度やれば、描いた物が元に戻る。
>>180 それだと、チラつかないかなーとか思ってまふ。
182 :
デフォルトの名無しさん:03/06/26 16:00
保守age
gdiplus使っている人居る?
独自描画コントロールをgdiplusで作ろうかと。
で、何処かに詳しいサイト無い?
リファレンスが充実しているところを知りたい
>>1より
>あと、APIに関する質問は「Win32API 質問箱」へどうぞ。
GetGlyphOutlineで得られるGlyphって右回りのループの内側を塗りつぶして、
左回りの内側を抜けばいいんだっけ?
188 :
デフォルトの名無しさん:03/07/12 17:13
保守age
189 :
デフォルトの名無しさん:03/07/12 17:16
あのさ、
190 :
デフォルトの名無しさん:03/07/12 19:21
ん
何を書いてもスレ違いなスレはここでつか?
VC7だとmanifestは勝手に用意してくれるの?
>193
回答は知らんがスレ違いだろうな。w
__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
P4のHTってマルチプロセスでも効果ある?
スレ違いどころか板違い
いよいよ面白くなってきましたねこのスレ
ところで、みんなVisual Stduio持ってる?
自分はVisual C++ Standardなんだが、
.netになってProfessionalが無くなったから選択肢が無い・・・
200 :
デフォルトの名無しさん:03/07/26 03:26
CRTを使う・使わないを気にする人がいますが、
CRTを使うことに関するデメリットを知りたいと思っているところです。
スレ違い。
CRTやMFCをDLL版で使うかstatic libraryで使うかも問題だなあ。
オレはDLLでいいだろ、って思う。
DLL地獄なんて、共有DLLをバージョンアップしただけで
動作がおかしくなるようなコードを書く奴が悪いよ。
漏れは液晶は好きくないのでCRT派です
204 :
デフォルトの名無しさん:03/07/26 12:14
俺はスタティックリンク派だな。
そうするだけで心配事が一つ減るし、インストールも簡単になる場合がある。
最近のマシンはメモリもHDDも容量がたくさんあるからスタティックリンクが無難だと思う。
206 :
デフォルトの名無しさん:03/07/27 02:21
207 :
デフォルトの名無しさん:03/07/27 15:36
質問ぐらいしたっていいだろ。
いちいち質問に関することを禁止するから自由な議論ができなくなってしまうんだ。
質問されたら優しく答えるのが、人情ってもんだろ。
>>200 複数の CRT を混在させたときに、めんどくさい問題に出くわす可能性が
ある。特に malloc/free などのように CRT 内部で状態を持ってる場合。
ふつーの exe 作ってる分には問題ないけど DLL 作る場合などは注意
しないと (一般保護違反で) 死ぬ。もっとも、そのへんに気をつければ
良いだけ。
>>202 最近はともかく、昔は Microsoft が平気でバイナリ互換性を崩して
くれたから。公開クラスのメンバ変数や仮想関数を追加されたりすると、
ライブラリ利用者がどう頑張っても「DLL のバージョンをあげただけで
動作がおかしくなる」のは避けられません。
メモリ配置変わっちゃうから。
ここで言う質問とは
>MFC ATL WTL 等は、それ専用スレがあるので、そちらでお願いします。
>あと、APIに関する質問は「Win32API 質問箱」へどうぞ。
に該当するようなことだ。
(^^)
212 :
デフォルトの名無しさん:03/08/15 03:51
保守age
そうか?
214 :
デフォルトの名無しさん:03/09/01 12:58
保守age
イディオムやパターンの話題щ(゚Д゚щ)カモォォォン
イデの力がどうとか、バッフクランがどうとか、そーいう話題でつか?
最初にプログラミングをしたのはHSPだった。
けれどまったく理解できずに放置していた。
その後、C++を始めた。まったく理解できなかった。
Cを独学で始めて、少しずつ理解できたが、そのころ
になるとなぜかHSPやHTMLがほとんど理解できる
ようになっていた。脳味噌の構造が変化していくの
を感じる。
結論としては、Cをすれば、たいていの言語は
理解できるようになるということ。
219 :
デフォルトの名無しさん:03/09/13 20:22
220 :
デフォルトの名無しさん:03/09/13 20:25
Win32のぽうろかいえうあ
どうやるんれつか?
222 :
デフォルトの名無しさん:03/09/13 22:08
Win32のぽうろかいえうあ
どうやるんれつか?
こたえろ!
223 :
デフォルトの名無しさん:03/09/14 00:45
質問スレだろ?
224 :
デフォルトの名無しさん:03/09/14 01:54
225 :
デフォルトの名無しさん:03/09/14 02:38
すまん。
議論のつもりで書いたんだが、1行目が思いっきり質問になってるな。
2つの矛盾した意見があるので、どちらが正しいのかはっきりさせたかったんだが。
227 :
デフォルトの名無しさん:03/09/14 02:42
244が未来からやってきた
228 :
デフォルトの名無しさん:03/09/14 02:48
229 :
デフォルトの名無しさん:03/09/14 02:52
230 :
デフォルトの名無しさん:03/09/14 02:54
222 :デフォルトの名無しさん :03/09/13 22:08
Win32のぽうろかいえうあ
どうやるんれつか?
こたえろ!
231 :
デフォルトの名無しさん:03/09/14 13:30
230 :デフォルトの名無しさん :03/09/14 02:54
222 :デフォルトの名無しさん :03/09/13 22:08
Win32のぽうろかいえうあ
どうやるんれつか?
こたえろ!230 :デフォルトの名無しさん :03/09/14 02:54
222 :デフォルトの名無しさん :03/09/13 22:08
Win32のぽうろかいえうあ
どうやるんれつか?
こたえろ!230 :デフォルトの名無しさん :03/09/14 02:54
222 :デフォルトの名無しさん :03/09/13 22:08
Win32のぽうろかいえうあ
どうやるんれつか?
こたえろ!230 :デフォルトの名無しさん :03/09/14 02:54
222 :デフォルトの名無しさん :03/09/13 22:08
Win32のぽうろかいえうあ
どうやるんれつか?
こたえろ!230 :デフォルトの名無しさん :03/09/14 02:54
222 :デフォルトの名無しさん :03/09/13 22:08
Win32のぽうろかいえうあ
どうやるんれつか?
こたえろ!
>>224 実際不具合が出てるんだから0を渡しちゃいけないのは明らかだと思うが。
漏れも不具合出たことがある
233 :
デフォルトの名無しさん:03/09/14 16:53
231 :デフォルトの名無しさん :03/09/14 13:30
230 :デフォルトの名無しさん :03/09/14 02:54
222 :デフォルトの名無しさん :03/09/13 22:08
Win32のぽうろかいえうあ
どうやるんれつか?
こたえろ!230 :デフォルトの名無しさん :03/09/14 02:54
222 :デフォルトの名無しさん :03/09/13 22:08
Win32のぽうろかいえうあ
どうやるんれつか?
こたえろ!230 :デフォルトの名無しさん :03/09/14 02:54
222 :デフォルトの名無しさん :03/09/13 22:08
Win32のぽうろかいえうあ
どうやるんれつか?
こたえろ!230 :デフォルトの名無しさん :03/09/14 02:54
222 :デフォルトの名無しさん :03/09/13 22:08
Win32のぽうろかいえうあ
どうやるんれつか?
こたえろ!230 :デフォルトの名無しさん :03/09/14 02:54
222 :デフォルトの名無しさん :03/09/13 22:08
Win32のぽうろかいえうあ
どうやるんれつか?
こたえろ!
234 :
デフォルトの名無しさん:03/09/14 18:04
233 :デフォルトの名無しさん :03/09/14 16:53
231 :デフォルトの名無しさん :03/09/14 13:30
230 :デフォルトの名無しさん :03/09/14 02:54
222 :デフォルトの名無しさん :03/09/13 22:08
Win32のぽうろかいえうあ
どうやるんれつか?
こたえろ!230 :デフォルトの名無しさん :03/09/14 02:54
222 :デフォルトの名無しさん :03/09/13 22:08
Win32のぽうろかいえうあ
どうやるんれつか?
こたえろ!230 :デフォルトの名無しさん :03/09/14 02:54
222 :デフォルトの名無しさん :03/09/13 22:08
Win32のぽうろかいえうあ
どうやるんれつか?
こたえろ!230 :デフォルトの名無しさん :03/09/14 02:54
222 :デフォルトの名無しさん :03/09/13 22:08
Win32のぽうろかいえうあ
どうやるんれつか?
こたえろ!230 :デフォルトの名無しさん :03/09/14 02:54
222 :デフォルトの名無しさん :03/09/13 22:08
Win32のぽうろかいえうあ
どうやるんれつか?
こたえろ!
235 :
デフォルトの名無しさん:03/09/14 18:41
234 :デフォルトの名無しさん :03/09/14 18:04
233 :デフォルトの名無しさん :03/09/14 16:53
231 :デフォルトの名無しさん :03/09/14 13:30
230 :デフォルトの名無しさん :03/09/14 02:54
222 :デフォルトの名無しさん :03/09/13 22:08
Win32のぽうろかいえうあ
どうやるんれつか?
こたえろ!230 :デフォルトの名無しさん :03/09/14 02:54
222 :デフォルトの名無しさん :03/09/13 22:08
Win32のぽうろかいえうあ
どうやるんれつか?
こたえろ!230 :デフォルトの名無しさん :03/09/14 02:54
222 :デフォルトの名無しさん :03/09/13 22:08
Win32のぽうろかいえうあ
どうやるんれつか?
こたえろ!230 :デフォルトの名無しさん :03/09/14 02:54
222 :デフォルトの名無しさん :03/09/13 22:08
Win32のぽうろかいえうあ
どうやるんれつか?
こたえろ!230 :デフォルトの名無しさん :03/09/14 02:54
222 :デフォルトの名無しさん :03/09/13 22:08
Win32のぽうろかいえうあ
どうやるんれつか?
こたえろ!
236 :
デフォルトの名無しさん:03/09/14 20:39
なんで答えがないんだ?
それどころか無視されているのか?
激しくつまんね。略してハゲ妻。
>>224 漏れは昔から何も考えずにSetWindowsHookExの
戻り値を渡してるけど、0を渡す意味は何かあるの?
ただ、戻り値を記憶しておくのが面倒なだけ??
グローバル変数をshared sectionに置くとかいろいろ面倒なんだろう
240 :
デフォルトの名無しさん:03/10/02 11:02
定期age
241 :
デフォルトの名無しさん:03/11/04 00:04
定期age
242 :
デフォルトの名無しさん:03/12/03 03:27
定期age
#define INT int
の意図がわからない。
typedef int INT
だった...ウツダシノウ・・・
#define LONG long
もあるよ。
ただ、大文字でも小文字でも書けるようにしたいだけでわ?
というか、一貫性の問題。
API関連の型は全部大文字、つー安心感がある。
と同時に、typedef or #define それぞれの持つ
そもそもの目的から。
LPSTRなんて、16bit時代は今と全然違う定義。
16bit時代 -> typedef char far * LPSTR ;
じゃあ、いつかは INT が long になったり、 unsigned int になったり、
short になったりするのかよ?
typedef unsigned long INT;
めでてえな。
INTの意味は違うだろ
16bit時代は int = short だったんだから・・・
249 :
デフォルトの名無しさん:04/01/21 21:05
>>247 あらら、凄い勢いで煽ったのに
つっこまれたら、おとなしくなっちゃったね・・・。
めでてえな。w
250 :
デフォルトの名無しさん:04/01/21 21:08
#ifdef ~(ANSI C準拠かどうか)
#define Const const
#else
#define Const
#endif
int func(Const char *);
というのは見たことがある。
そんなのこんだけでだけで済むじゃん。
#ifndef __STDC__
#define const
#endif
頭割~。
漏れのが頭わるそうだ。欝。
定期age
LARGE,MEDIUM,COMPACT,SMALL,TINY
昔はいろいろあったなあ・・・
WindowsではCOMPACTが推奨されてたような。
MEDIUMだろ。
先週からウィンドウズプログラミングやり始めたんだけど、どうやって知識埋めていったの?
やっぱ漠然と覚えていくって感じ?
>>257 まずは自分のやりたいことを限定する。
そして、そのやりたいことに必要な部分だけを調べる。
ほかの事は見向きもしない。
それが出来た後、機能を一つずつ追加していく。
>>258 漏れは漠然と会得していった。
どうせ趣味だし。
261 :
デフォルトの名無しさん:04/03/29 04:48
復活age
>>257 他人のソースを見ながら入門サイトやMSDNと突き合わせていった
もともとVB、Delphi、MFCはやってたからあるはずのものを探していく幹事
263 :
デフォルトの名無しさん:04/03/29 09:53
俺はMacから移行してきたけど、WinもMacも似たようなもんだから、
本をパラパラっと目を通しただけで、だいたい理解できた。
「ボタンとかもウィンドウの1種なのか。へぇ~」ぐらいなもんだな。意外だったのは。
Macに比べ、Winでのプログラミングは情報も溢れてるし、
Appleと違ってMicrosoftのサポートも期待できるから(笑)、
地道に1冊読み込んで、プログラム作ってみれば身につくんじゃないかな。
>>257 自分の場合、
「猫でもわかるWindowsプログラミング」
が、足がかりとして大変参考になりました。
あとは、MSDNを参考にガンガンコーディングして腕を上げていきます。
ただ、日本語版のMSDNは、内容がおかしかったりするので、あまりお勧めしません。
>>257 Windowsでは、おいらはいきなり(というか今にして思えば無謀にも)
MFCから入門するも挫折。
いろんな本を買い込んで試行錯誤しながら勉強した。その結果、
メッセージの扱い方を習得した。
んなもん最初に習得しろって? スイマセン、ごもっとも…(^ ^ ; ; 。
メッセージを制する者、Windowsプログラムを制する。
その後MFCにリベンジ。あら不思議、自分でも信じられないくらい
プログラムが書けるようになった……まぁ回り道ではあったが、本に
かけた金は無駄ではなかったようだ。
266 :
デフォルトの名無しさん:04/04/20 10:36
MFCのいい導入教本って無いんだよな。
いきなりウィザードで作られたオブジェクトの集合体(フレームワーク)を相手にアプリ作るものばかり。Win32API知っていても敷居が高い。
その点Win32APIは、理解するのが楽。ブラックボックスと感じるところが少なくて見晴らしがいい。
つーわけで、今MFCフレームワークのソース解読しています。
ウィザードで一番シンプルなフレームつくって、そのソースを読むのが現状一番理解安い勉強法だな。
268 :
デフォルトの名無しさん:04/04/28 22:55
269 :
デフォルトの名無しさん:04/04/29 23:31
>>267 それより、自分でMFCもどきのクラスライブラリを作るほうが勉強になる。
つまったらMFCのソース見て「こうすればいいのか」で理解できて、
独自の使いやすいクラスライブラリも作れてウマー。
>>269 しかしVC++自体がMFCに特化してるので、MFCを完全に習得したら
結果的にはMFC使うほうが楽じゃない?
元々WIN32APIだったけどMFCに引越ししてきて、あまりにもコードを書く量が少なくて
ビックリしてんだけどさ。
でも、たしかにWIN32APIの理解って意味ではクラスライブラリ作るってのは
すごい勉強になると思う。
>>270 楽だけど、MFC使うとサイズ大きくなるからイヤ
そこでWTLですよ
全利用者のHDD増設費用を負担してやるほど金がないんで。
それくらいのことが出来ないで何がオンラインソフト作者か。
それなら真っ先にMSからHDDが送られてきていいはずなのだが……
商売とボランティアをいっしょにするな
そうはいってもIEだってVC++Toolkit2003とかだってタダで配ってるわけだし
同じようなものだべ
>>276 なんでMSがHDD買ってやらにゃならんのだ。
随分有意義な議論のスレですな( ´∀`)
>267
MFC6.0 標準講座 という本は、ウィザードを使わない入門書でオススメ
数ページしかウィザードに関するページがなくてワロタ
282 :
デフォルトの名無しさん:04/07/06 00:20
MFCは、VC1の頃は「使わない=正解」だった。
しかし、最近は、そうでもなくなってきた。
283 :
デフォルトの名無しさん:04/07/08 11:14
>>283 そのスレの392です。
パイプを使うとかも考えられますね。
マンドクセけど。
他に思いつく方法としては、
ウィンドウプロシージャは共通化して、ウィンドウハンドルで分岐。
データはウィンドウプロシージャのローカル変数に保持。
実質的にグローバル変数を使うのと大差無い気もしなくもない。
データを操作するインタフェイス用イベントを各プロシージャに作成。
標準コントロールでも基本的にこの方法だし。
>>286 なるほど。そんな方法もあったか。
漏れは、グローバル変数(構造体?)を作って
それでやりとりしてる。
この方法が一番簡単だから(笑)
C++では、CreateWindowとかをラッピングして、
メンバ関数がコールバックされる仕組みを作っておけば、
後は単にオブジェクト同士の通信って事で、
参照とかポインタ使うなりObserverなりで普通に解決出来るよな。
そのクラスへのポインタは GWLP_USERDATA とかに持たせといて。
Cっぽい手法をって事なのかもしれんけど、一応。
289 :
デフォルトの名無しさん:04/07/21 18:14
FreeLibraryAndExitThreadなんて意味不明のAPIはなんなの?
> 解説
> FreeLibraryAndExitThread 関数は、次のように実装されています。
> FreeLibrary(hModule);
> ExitThread(dwExitCode);
だったら自分でこう並べりゃいいんじゃないのか
FreeLibrary(hModule);
ExitThread(dwExitCode)
>>289 \ ∩─ー、 ====
\/ ● 、_ `ヽ ======
/ \( ● ● |つ
| X_入__ノ ミ そんなエサで俺様がクマ――!!
、 (_/ ノ /⌒l
/\___ノ゙_/ / =====
〈 __ノ ====
\ \_ \
\___) \ ====== (´⌒
\ ___ \__ (´⌒;;(´⌒;;
\___)___)(´;;⌒ (´⌒;; ズザザザ
(´⌒; (´⌒;;;
って、マジであるし_| ̄|○
何を仰いますか。
どちらかを呼び忘れるというミスを防げるぢゃないですか。
こりゃあ便利だぁ。
順番を間違えて逆に書いちゃってもコンパイルエラーが出るから安全だしね。
ExitThread(dwExitCode);
FreeLibrary(hModule);
って書いちゃったらコンパイル通っちゃうもんね。
293 :
デフォルトの名無しさん:04/07/21 18:45
/ _ -‐‐ 、  ̄``ヽ、
/ / / , -‐ ̄ `ヽ\ \C/C++のエキスパートだからと言って
/ / / / .イ// ト、 \\ ヽMFCのメリットを無視してはいけない。
/ / / / / / / / | \ \ヽ `、MFCは混沌としたWindowsプログラミングの世界に
/ / / / / / /〃 || ト、ヽ `、 ',風景を与え、プログラマが陥りがちな
/ / / / 〃/ /// / || | ヽ ヽ `、│ !罠を避けるためのものである。
/ / / / / / /// /___|| | ヽヽ i │ ||しかし、その愛すべきMFCの裏には
/i/ │ /十/ナ/ / /〃 リ厂``ト}} 川│ | || プレーンなC・APIのコードが隠されている
l∥│| |{ l/ ___/ "/´ ノlノ_ jjハ|| l | | ||ことを忘れてはいけない。
| ||l│| ||,,ィテ〒ミ、 テ〒ドz、リ川 l | リMFCがあればAPIを無視できるなどと
| ||.!¦h || |:ト-イj::| |:ト-イj::| `V// ノ| 誤解しないでいただきたい。
| || !l l{」、ヽ ヾ辷ツ ヽ辷ツ // /}| /
!! `、| | \`、‐-一 r ‐-一''/イ /レ1|/ by アジソンウェスレイの中の人。
| | lヽ i i i i i i 彡7 / /|∥
| | | |`丶、 ` ̄´ . ィ7/ / /八 |
|八 ! | | | >, __.. イ \|// / //ハ |
>>289 AdvancedWindowsに解説があるので読むべし。要約すると:
DLLが作ったスレッドがDLL自身をアンロードする際、個別に開放関数を呼び出してしまうと、
FreeLibraryした時点でDLLのマッピングが解除されて実行コードが消滅するので、
ExitThreadが実行できず(無い袖は振れない)バイオレンスな事態が起こる。
FreeLibraryAndExitThreadであれば、カーネルモードから戻った時点で
DLLもスレッドもいなくなってるので万事OK、All's right with the world、というわけ。
295 :
デフォルトの名無しさん:04/07/22 01:51
Windowsでのパスの区切り文字って、
\、/
以外にあったっけ?
ない。なお、単なる質問は質問スレへ。
297 :
デフォルトの名無しさん:04/07/22 02:09
296
ThX!
スマソ!
http://pc5.2ch.net/test/read.cgi/tech/1090422324/20-24 > 20 名前:デフォルトの名無しさん 投稿日:04/07/22 19:00
> ダイアログベースのプログラムの欠点って何ですか?
> 欠点がないならGUIが簡単に作れるから全部ダイアログベースで書いちゃえばいいと思うんですが。
>
> 23 名前:デフォルトの名無しさん 投稿日:04/07/22 19:26
>
>>20 > そうですね。
> その通りになさればよろしいと思いますよ。
>
> 24 名前:デフォルトの名無しさん 投稿日:04/07/22 19:35
> ダイアログだって、ウィンドウの面倒な部分をかなりラッピングしただけなんだから本質的な違いは無いでしょ
>>298 こういうのを見ると、バックスラッシュを円記号に当てたのがJIS最大の過ちな気がするな。
第2の誤ち: アスキーとMSKKによるSHIFT JIS採用。
第3の誤ち: それまでの誤ちを正さず、屋上屋を重ねて、0x5cがバックスラッシュでなく円記号になるという、日本でしか通用しない
「Unicodeみたいなもの」
を作ってUnicodeと名乗らせてしまったMSKK。
嘘がばれないように新たな嘘を吐き……というのに似ている。
>0x5cがバックスラッシュでなく円記号になるという
これはしょーがない気もするけどなぁ。
昨日まで円記号だったパス区切り文字がOSのバージョン上げただけで
バックスラッシュになってたら混乱も起きるだろうし。
>>298はバックスラッシュ/円記号問題と何の関係もない気がするんだが。
スラッシュの代わりにバックスラッシュが使えるというだけの話だろ
「JIS最大の過ち」に対して第2第3と称してMSKKの過ちとやらを持ち出すのも意味不明だし
>>298から
>>300が出るのは意味不明っつーか問題のすり替えだけど、
>>300から
>>301が出るのは自然でしょ。問題がすり替わったことを受け入れれば、だけど。
MSのセンスのなさは、UNIX風の階層ディレクトリをパクって来た際に、
Cの文字列でエスケープを担当している「\」をパス区切りとして採用した点だろ。
まあ当時はアセンブラかBASICくらいしか念頭においてなかっただろうから、
ある意味仕方ない面もあるかもしれないけどね。実際の経緯は知らんが。
むしろISO646のinvariantではない文字を使いまくりのC言語が(ry
>>299 CreateDialog()でダイアログをウィンドウのように扱っても特に問題は無い。
メモリ消費が通常のウィンドウベースより多いぐらいか?
あとは、コントロールの取り回しが多少面倒。基本的にウィンドウハンドルを使わず
SendDlgItemMessage()でやるから。
ドサクサに紛れてアンチMSが暴れているスレはここですか?
かなり遅れて、しかも夏全開の突っ込みが入るスレなら、ここで合ってる。
stlのvectorで vector< vector< int > >のように二次元配列として使用しています。
この配列の全要素に一括で同一の値を代入することってできますか?
今のところ、ループを回して逐次代入しているのですが。
うわ、誤爆しました。すみません
>>330 DWORDを取得したいからだろ、
MSの流儀は、値取得ならTYPE *で設定ならLPTYPEにしてあるじゃないかい
BOOL GetDiskFreeSpaceEx(
LPCTSTR lpDirectoryName, // ディレクトリ名
PULARGE_INTEGER lpFreeBytesAvailable, // 呼び出し側が利用できるバイト数
PULARGE_INTEGER lpTotalNumberOfBytes, // ディスク全体のバイト数
PULARGE_INTEGER lpTotalNumberOfFreeBytes // ディスク全体の空きバイト数
);
MSが*を使うのは基本的にポインタのポインタ(LPLP~)となってしまう場合にLP~*とするときくらいじゃないのか?
317 :
デフォルトの名無しさん:04/09/20 22:20:45
あとは構造体のconstポインタもまず間違いなく*を使っている、ってこれは
>>313の言っていることと同じだな。
どうでもいいが313はtypedef ~ *PHOGE; const PHOGE pHoge;とconst HOGE *pHoge;の違いを分かっているのか?
318 :
デフォルトの名無しさん:04/10/12 07:18:01
age
319 :
デフォルトの名無しさん:04/10/24 07:11:15
>>319 どうしても1文字単位の幅を知りたいのなら
GetTextExtentPoint32を文字の数だけ繰り返し呼べば代用できるかな。
321 :
デフォルトの名無しさん:04/10/24 21:24:14
>>320 GetTextExtentPoint32は初めて知った。
㌧クス、これでいけそうだ。
323 :
デフォルトの名無しさん:04/12/07 13:52:37
age
324 :
デフォルトの名無しさん:04/12/07 15:54:58
programe→programing
program →programming
>>323 反射的に突っ込みを入れてないで
>>2を読め。…ってか、過去ログ読んでから書き込め。
327 :
デフォルトの名無しさん:04/12/31 01:59:49
それでは、みなさん良いお年を~
328 :
デフォルトの名無しさん:05/01/18 04:09:27
15日遅れの、あけましておめでとう。
329 :
デフォルトの名無しさん:05/02/17 00:35:36
age
330 :
デフォルトの名無しさん:05/02/20 10:41:31
ヷ〳〵〳〵〳〵〳〵〳〵〳〵
age
332 :
デフォルトの名無しさん:皇紀2665/04/01(金) 00:44:24
>>331 皇紀2665/04/01(金) って何だ?
334 :
デフォルトの名無しさん:2005/05/17(火) 08:24:39
age
335 :
デフォルトの名無しさん:2005/06/22(水) 07:51:44
あげ
CかC++でWinAPI使ってプログラミングしていると、
やけにコピペを使ってしまうのは俺だけですか?
>>338 今時はついてないエディタの方が稀だけどな。
>>339 エディタで付いてるのはめずらしくないか。IDEだと普通だけど。
341 :
339:2005/07/31(日) 10:20:43
>>340 分類してみた。公式ページとかをざっと見て確認しただけなのであまり正確ではないと思うがその辺はご容赦を。
あるのが「めずらしい」というほどでもないが、補完機能無しの方が多数派みたいです。
<補完機能無し>
萌ディタ VxEditor VxEditor ne K2Editor Jesty JmEditor "Little Spider"
MKEditor NoEditor UnEditor えるの~と EdTex TeraPad Text maid
tolstoj WHiNNY "Maple Editor" "Crimson Editor" ConTEXT
<補完機能有り>
PeggyPad Alpha 秀丸エディタ サクラエディタ Emacs MetaEditPro
OTBEdit OEdit Scintilla SynEdit
342 :
デフォルトの名無しさん:2005/08/24(水) 10:22:09
age
343 :
デフォルトの名無しさん:2005/08/25(木) 19:38:39
正直最近テンプレートって知りました。
ATLのヘッダーのコード読んで勉強してるが、正直難しい。
長いことゲーム業界にいたんで、アセンブラ、Cまでなら熟知してるけど(OOPはJavaでデザインパターンとか実践した)
学習するのにいい本ないべか?
344 :
デフォルトの名無しさん:2005/08/25(木) 19:47:03
Spy++みたな感じで、ActiveXのメソッドやプロパティーに送ってる情報調べるの無いかしら?
universal delegator使って自分で挟むしかない気がするなぁ
「サブクラス化」って何?
デフォルトWinプロシージャをフックするようなもん
名前の由来は知らない
C++でいう派生クラスのことをサブクラスと言う言語もあるみたいだよ。
subclass
1 〔生〕亜綱:classの下位分類.
2 下層階級.
3 =sub set.
━ 曠昿下位[亜綱]に分類する.
Progressive English-Japanese Dictionary, Third edition ゥ Shogakukan 1980,1987,1998/プログレッシブ英和中辞典 第3版 ゥ小学館 1980,1987,1998
サブクラス化というのは相手がどうなるかということで
実装する方はいわゆるスーパークラスになっている
ボタンコントロールをスーパークラス化する=
ボタンコントロールが基底クラスになる=
私の書いたコードは継承である
ボタンコントロールをサブクラス化する=
ボタンコントロールが継承クラスになる=
私の書いたコードは(メッセージをフックして)基底クラスになる
戻り値で、CString返したりする関数積極的に作っていいのかしら?
>>353 MFC使うプロジェクトという前提ならば
俺は非MFCでstd::stringなりなんなりを返したりはするよ。
>>ALL
馬鹿にしないでください。それでわかるくらいなら質問しません。
>>356 馬鹿にしないでください。それでそれで分からないのなら回答しません。
>>質問者
お前がそんなに馬鹿とは思わなかった。二度とプログラムはしない方がいいですね。
>>358 馬鹿にしないでください。それでわかるくらいなら質問しません。
今テキストエディタを作っているのですが、
1つ困った問題があります。1画面にデータを表示しきれなくなり
スクロールで描画を更新するときの処理なのですが常套手段としてどんなのがあるのでしょうか?
memcpyで表示行分forループを回し先頭からいくら削除した文字列を作って1行ずつ表示させていますが
どうにも画面がチラチラチラして困ります。助けてください
描画の問題なら、バックバッファ使えば? って話?
363 :
デフォルトの名無しさん:2005/09/30(金) 00:11:26
C/C++なんて言うけど、今時のC++はCとは全く別物
C++ができる奴は例外なくCもできるが
CだけのやつはC++は全くついていけない
Linusなんてその典型w
>>363 逆だ馬鹿。
C++がCに必死こいて合わせてたのがC99のせいで全部パーになった。
CとC++の標準化って別のとこがやってんの?
>>365 で、またC++ 0xで必死こいて合わせようとしているようだ。
Safer Cとやらは新しいC++標準にも同時に入るんでしょうかね
もし入っても処理系がない罠
Microsoftの場合先に実装して標準に提案して
実際に標準になったものとは微妙に仕様が違う罠
372 :
デフォルトの名無しさん:2005/10/20(木) 23:29:26
あげ
リサイズ時のチラつきが気になる。
WM_CREATE捕まえて
hTree = CreateWindowEx(0, WC_TREEVIEW, "", WS_CHILD | WS_BORDER | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | WS_VISIBLE | TVS_HASLINES | TVS_HASBUTTONS | TVS_LINESATROOT, 0, 0, 0, 0, hWnd, NULL, hInst, NULL);
あとはWM_SIZE捕まえたときにMoveWindowでクライアント領域にフィットさせてるだけなのだが……
ウィンドウクラス登録するときにhbrBackgroundをNULLにするだけじゃダメなのか。
WM_ERASEBKGNDつかまえてTRUE返す方法でもダメだった。
VBはうまくやってるなーとおもったら、クラス名がSysTreeView32じゃなかったorz
WM_SETREDRAWで再描画を抑制すれば?
というか、質問スレでもいいと思うけど。
375 :
デフォルトの名無しさん:2005/12/08(木) 05:02:52
age
hos
377 :
デフォルトの名無しさん:2005/12/28(水) 23:00:30
C++でWINDOWSプログラミングをしたいと思うのですが
どっかいいサイトないですか?
環境はフリーで揃えられ、CでなくC++でやれるというのが条件なのですが
金は一銭も使いたくないんです
まあどうせ答えてもらえんだろうが
>>377 Microsoft Visual C++ 2005 Express Edtion
379 :
デフォルトの名無しさん:2005/12/28(水) 23:18:35
>>378 それやろうと思ってたとこだったんだけどね
インストールに手間取ってね
お願いですからお引き取り下さい
>>377 答えるもなにも、ここは議論スレなんだが。
ついでに、
議論するまでもなくC++でWindowsプログラミング程度なら
タダでいくらでもできる。
だからそのやり方が載ってるサイト捜してるわけだが
だったらどのスレで聞きゃいいの?
一生聞いてろ
>>382 インストールはただ指示に従って「はい」を押し続けていくだけだったと思うが。
>>382 いくつかヒントやるよ。
ただしスレ違いだから、もうこのスレを消費しない事。お礼も不要だ。
1. 「MinGW」でググれ。
2. うまくいかなくても、何度も挑戦でだ。OSの再インスコを面倒がるな。
3. なんか出来たらうp。
387 :
385:2005/12/29(木) 00:05:29
>>378 あ orz なんでVC++薦めてんだ。
せっかくイバラの道を歩ませようと思ったのに。。。
>>387 2005EEならまだ解説しているページも本もないからいいかと思った。
むしゃくしゃしてやった。今は反省している。
だからその質問すべきところに誘導してくれって言ってんだ
mingwはcygwinとかmsysあれば結構楽だしなあ
OpenWatcomでGTK+とかどうよ
あ、そうだ
質問が悪かったかな
何れにせよスレ違いっぽいけど
こうならどうだ
C++でWINDOWSプログラミング教えてくれるサイト教えれ
あ、そうだ
質問が悪かったかな
何れにせよスレ違いっぽいけど
こうならどうだ
C++で幼女にプログラミングを教えられるサイト教えれ
必死だなお前どうせ挫折するってwwwwwwwwwwww
>>385 > 2. うまくいかなくても、何度も挑戦でだ。OSの再インスコを面倒がるな。
MinGW入れただけで環境壊す奴なんているのか? 最近はインストーラも付いて
かなり敷居が下がった感じだが
>>396 世界は広い、環境も千差万別ってとこだ。
来年の目標はは自分視点でものを言うをやめるにしとけや
ワロスw
>>397 はあ、なんか気に障ったのかね。
レジストリを使うわけでもなし、ただどういう原因で再インストールまで追い込まれるのか
興味があっただけなんですけれども
はあ、スレ違いな話題を続けていただいてどうもどうも
401 :
385:2005/12/31(土) 22:53:10
ごめんごめん(;´Д`)ボクのために争いはやめて!
>396
いや、インスコだけじゃなくて、開発も含めてのアドバイスのつもりだったのよ。
俺漏れなんか、InsideWindowsは手に入らないし、でもWinはハックし尽くしたいし
ってことでいやもう壊した壊したw
402 :
デフォルトの名無しさん:2006/01/01(日) 19:33:11
ヲタク
そこでVirtual PCやらVMwareですよ。
404 :
デフォルトの名無しさん:2006/02/15(水) 01:47:11
age
>>397 皆の思考は違う~で一生やってったら?
人を従わせて生きていく奴(主役)は自分の考えで他人(脇役)を動かしていくもんだ
まだ人が居たよ
__________
<○√
∥
くく
しまった!ここも糞スレか!
オレが止めているうちに他スレへ逃げろ!
早く!早く!オレに構わず逃げろ!
(´A`)保守
410 :
デフォルトの名無しさん:2006/04/29(土) 12:45:43
あげ
ヽ(`Д´)ノボッキアゲ
413 :
デフォルトの名無しさん:2006/07/04(火) 03:34:41
414 :
デフォルトの名無しさん:2006/08/04(金) 11:47:43
あげ
415 :
デフォルトの名無しさん:2006/08/04(金) 22:26:21
ここの人たちってC++でVBみたいなプログラム書いてる人たちをどう思うの?
クラスとか一切使ってなくて、ファンクションの荒らしみたいな。
Cでもそうなるがなw
質問なんだけど
大学生活もおちついてきたのでC言語でも学習しようかなあっておもってます。
windows上でプログラミングすることになるんだけどコンパイラは
MSのVisual Studio 2005 Academic EditionでOK?
学生だからアカデミック版だとかなりやすく手に入るかなーとおもってこれにしようか
とおもってるんだけどこれは商品としてはどうなんですか?
だれかエロい人おしえて。
無料のExpress Editionで十分すぎるよ
>418
返信ありがとうございます。
無料のExpress Editionって期限ありませんでしたっけ?
アカデミックは超安いから、アカデミックでいいと思うよ。
返信ありがとうございます。
とりあえず始めはExpress Edtionではじめて、ある程度C言語を習得したらアカデミッ
ク版買おうと思います。
おまえらスレタイも読めないのか。
「しつもんおことわり」だ。
生意気な説教もお断りだがな
>427
>425が質問だって胃ってんだろ
なんだこの餓鬼のあつまりは
所詮GUIをCでしこしこ書いてるやつは
オナニー野郎
>>417 2ヶ月以上前のにレスで申し訳ないが、金によっぽど不住してるわけじゃないなら、
素直にアカデミック買った方がいい。
ExpressEditionは、色々と面倒なところが多いから、初心者がC言語の学習目的で
導入するのはお勧めしかねる。
クリエイティブゥ? ??ディー、アイ、ビィィーーー……ハクション!!!
433 :
デフォルトの名無しさん:2006/10/08(日) 18:02:43
スレの活性化キボンヌ!!!!!!!!
>>ExpressEditionは、色々と面倒なところが多いから
kwsk
>>434 プラットフォームSDK入れなきゃいけない
入れてもMFC使えない
マルチスレッドは作れない??
等だと思った。
最初のうちは無料ので気にすることないと思うお( ^ω^)
けどアカデミック安いし買って損はないと思うんだ
>>435 マルチスレッド出来るに決まってんだろカス
>>436 スレッドを作ることは当然できるが、
スレッドセーフになってるか?
>>437 Cランタイムライブラリに関していえば
シングルスレッド用のは削除されて
マルチスレッド用のみになったぞカス
お前の糞プログラムがどうかはシラネ
439 :
デフォルトの名無しさん:2006/12/05(火) 09:57:50
age
最適化無しとシングルスレッドがごっちゃになってるのか
ここは何の意味がある?
BORLAND C++ FOR WINDOWS プログラミング技法
ピーター・ノートン/ポール・ヤオ (1992) (株)ビー・エヌ・エヌ
付録B デフォルトウィンドウプロシージャ
Windows3.0(?)SDKのDefWindowProcのリストがある。
Win32のDefWindowProcの不思議な動作もこれを読めば大体分かる。
なつかしいな
漏れはそれ読まなくてもDefWindowProcの動作は理解出来たけど
WM_NCACTIVATEとフラグ、
WM_NCLBUTTONDOWNとSysMenuとWM_SYSCOMMANDの関係、
ここらが知りたい人は図書館で探して見開き10ページ分を複写するといいよ。
THE OLD NEW THING ISBN 0321440307 到着 sage
モノクロビットマップはビッグエンディアン
モトローラ6845と関係あるの ?
6845はただのCRTCだから関係ないだろ
っつーかVRAM一般はビッグエンディアンじゃないの
PC-9801は、左から右に b0,b1,,,b7だった。
IBMPC(CGA)は、左から右に b7, b6,,,b0だった。
6845は確かシフトレジスタ外付けだったから
どっち方向にするかはハード設計者が決める
6845のせいじゃない