07/02/26 18:13:00
自分自身のProductVersion の読み出し方法は?
色々探したのですが、どうも自分自身のProductVersionを
読み出す方法が見つかりません。
自身の実行ファイルのフルパスを探し出し.... という方法は
見つけましたが、何だかなぁという感じで。
CString::LoadString のような感じで読み出す方法はないのでしょうか?
489:デフォルトの名無しさん
07/02/26 18:53:34
ストリングテーブルになかったか?
490:デフォルトの名無しさん
07/02/26 18:54:56
なんだ質問者が答えてるじゃないか
キチガイの独り言はやめほしいな
491:デフォルトの名無しさん
07/02/26 19:18:29
>>489
> ストリングテーブルになかったか?
ストリングテーブルには登録されてないよ。
492:デフォルトの名無しさん
07/02/26 19:19:07
>>490
> なんだ質問者が答えてるじゃないか
> キチガイの独り言はやめほしいな
CString::LoadString で読み出せるのか?
IDは、何を設定するの?
493:デフォルトの名無しさん
07/02/26 19:43:48
何だかなぁ
494:デフォルトの名無しさん
07/02/26 19:53:29
わざわざ教えてやっても何だかなぁと言われたら馬鹿だし
495:デフォルトの名無しさん
07/02/26 20:02:23
>>488
URLリンク(tgws.fromc.jp)
496:デフォルトの名無しさん
07/02/26 20:04:24
FindResourceから始めれば出来なくは無いな。
497:483
07/02/26 21:52:54
>>487
CDialogBarを利用してみました。ソースは以下の通りです。
(MainFrm.cpp)
if (!m_wndDlgBar.Create(this, IDD_DIALOG_HOGE,
CBRS_ALIGN_TOP, AFX_IDW_DIALOGBAR)){
TRACE0("ダイアログバーの作成に失敗しました。\n");
return -1;
}
しかし、ダイアログを移動するとダイアログのあった場所が再描画されません。
CBRS_ALIGN_TOPを指定しているせいでしょうか?
また、サイズがリソースで作成したものと変わっていたり(横いっぱいに広がっている。ALIGN_TOPの影響?)
しています。
URLリンク(www.alpha-net.ne.jp)
このようなドッキングされた状態の作成方法はいろいろ紹介されているのを確認しましたが、
通常のモーダレスダイアログのような振る舞いをさせる方法が分かりません。(任意の座標に表示させるとか)
どういった方法をそればいいのでしょうか?
498:デフォルトの名無しさん
07/02/26 22:02:08
ダイアログバーのサンプルならMSDNについてる
499:デフォルトの名無しさん
07/02/26 23:07:39
ウインドウの動かしかたも知らんのか
500:デフォルトの名無しさん
07/02/27 11:53:59
こうですか?
うまくいきました!!
501:MDI今日始めます
07/02/27 18:18:27
すみません。ど素人ですm(__)m
MDIのプログラム今日始めました。ウィザードでMDIのプロジェクトを作成後、
クラスビューでOnDraw(CDC* pDC)という関数を発見し、これで描画できると
思いましたが、子ウィンドウを新規作成するたびに同じ描画を繰り返すだけ。
子ウィンドウ毎に違う描画をしたいのですが、どうしたらいいんでしょう?
メインのソースたどろうにも、CWinApp::OnFileNewはライブラリになっていて
ソースの実体が無くどうしていいのかわかりません(ToT
502:デフォルトの名無しさん
07/02/27 18:40:27
その違う描画、は何を持って違うことになるのか
それによってOnDrawでの動作を変えりゃいいだろ
503:デフォルトの名無しさん
07/02/27 18:40:34 BE:62112948-2BP(222)
同じ描画になるのは同じ描画しかしないコードを書いているから。
CView::OnDrawでCDocumentのインスタンスを識別してそれぞれで描画するようにしれ。
504:デフォルトの名無しさん
07/02/28 01:39:33
ListViewの初期化方法、削除方法を教えてください。
505:デフォルトの名無しさん
07/02/28 13:40:52
>>504
MSDN読め
506:デフォルトの名無しさん
07/02/28 22:14:14
教えてください。
VC++6.0でMDIです。
MDIの子ウィンドウとしてCFormViewを継承したクラスが2つあります。
このクラスを仮にA,Bとします。
Aのウィンドウのボタンが押されたときにBのウィンドウの
エディットボックスの内容を更新したいのですがどうすればよいでしょうか。
MDIGetActiveとGetNextWindowをつかってウィンドウをたどっていき
if(pWnd->IsKindOf(RUNTIME_CLASS(B)))で判定すればBのウィンドウの
ポインタが取れると思ったのですが、このif文がなぜか真になりません。
何がまずいのでしょうか。
507:デフォルトの名無しさん
07/02/28 23:27:13
>>506
MFCの問題っちゅーかプログラミング能力の問題じゃねぇの?それ。
まあ、問題の切り分けができないってのもわからないでもないが・・・
そういう機能はAとB2つに影響を与えることができるクラスに付けなきゃ駄目だよ。
AやBはその機能を呼ぶだけ。
>>203-205の問題と似てネーか?
508:デフォルトの名無しさん
07/03/01 09:30:44
>>506
そもそも基本ができていない
やろうとしていることの前に、基本から勉強しなおせ
509:デフォルトの名無しさん
07/03/01 15:05:40
基本的な質問なのです、よろしくお願いします。
VS2005でMFCアプリケーション(ダイアログベース)を作ったのですが。
新規にダイアログベースを作成してそのまま何も加工せずにセットアップ
ウィザードを使ってsetup.exeを作って他のPCでインストールしようとしたら
.NET framwork2.0をするように指示する画面がでました。
これは、VS2005で開発したものはframework2.0が必要?それとも
インストーラーがframework2.0が必要?なんですか?
frameworkが必要ないとおもってMFCにしたのですが、framework不要に
する設定ありますか?よろしくお願いします。
510:デフォルトの名無しさん
07/03/01 15:07:08
訂正です。
x .NET framwork2.0をするように指示する画面がでました。
○ .NET framwork2.0をインストールするように指示する画面がでました。
511:デフォルトの名無しさん
07/03/01 15:45:02
CHtmlDialog使ってる?
512:デフォルトの名無しさん
07/03/01 17:30:44
それはじめてききましたので意識的にはつかってないかと
513:デフォルトの名無しさん
07/03/01 18:51:13
んー、普通に作ればいらんけどな。
とりあえず、新規プロジェクトで何もしないでウィザードだけでできあがったダイアログで
試したらどうなる?
514:デフォルトの名無しさん
07/03/01 18:51:54
セットアップがあやしいな
515:デフォルトの名無しさん
07/03/01 21:06:55
『標準講座MFC6.0―Visual C++による効率的なWindowsプログラミング』
という本を以前読んで、大変勉強になったのを覚えています。
無くしたので、他の本と一緒に買おうかと思うのですが、どうせならVC++.net
関連の本がいいと思っています。サンプルも欲しいです。
何かお勧めはありますでしょうか?
516:デフォルトの名無しさん
07/03/01 22:50:39
VC++2003 のリソースエディタで作成したポップアップメニューについて質問です
やりたいことは簡単でポップアップメニューのサブメニュー(横に開いたやつ)を
状況(その時の変数値など)に応じてグレーアウト(Enable が FALSE の状態)したいだけです
OnUpdateXX(メニュー名) で pCmdUI->Enable(FALSE) することで
普通のポップアップメニューをグレーアウトすることはできました
しかし、ポップアップメニューのサブメニューに同じようなことをやってもうまくいくません
サブメニューを選択して初めて OnUpdateXX と OnXX が走っているようです
どうにかして同じようにサブメニューをグレーアウトさせることはできないでしょうか?
517:デフォルトの名無しさん
07/03/01 22:54:35
スレ違い。書籍スレへどうぞ。
518:デフォルトの名無しさん
07/03/01 23:19:43
そんなことおっしゃらずに教えて頂けないでしょうか?
519:デフォルトの名無しさん
07/03/02 00:42:30
>518
ここはMFCスレ。.netやりたいならそういうスレで聞けば?MFCなら標準講座でいいだろうし。
520:デフォルトの名無しさん
07/03/02 09:27:14
なんで.NETだと思うんだ?
521:デフォルトの名無しさん
07/03/02 12:20:53
>>516
OnUpdate~に頼らず、自分でグレーアウトさせる。
522:デフォルトの名無しさん
07/03/02 14:04:34
VC++6.0使っています。
MFCでAPIである
SetWindowText(hWnd ,"(@_@)");
を使いたいのですが、MFC上でこの関数を実行すると
ウィンドウハンドルの引数が省略されてしまい、コンパイルできません。
MFC上で、任意にウィンドウハンドルを指定してSetWindowText関数を
使う方法はありますでしょうか?
523:デフォルトの名無しさん
07/03/02 14:09:24
スコープ演算子
524:デフォルトの名無しさん
07/03/02 14:20:29
>>522
C++ の基礎からやりなおせ
525:デフォルトの名無しさん
07/03/02 14:32:43
>>523
>>524
ありがとうございます。
勉強しながらなので、
お教えいただいたヒントを元に
答えを探ってみたいと思います。
526:デフォルトの名無しさん
07/03/02 14:39:48
>>523
>>524
どこに対してスコープを設定すればよいのか
見当もつかなかったので、試しに関数の頭にスコープ演算子だけつけてみたら
なぜかうまくいきました。
527:デフォルトの名無しさん
07/03/02 14:55:29
>>522
>MFCでAPIである
WindowsのAPIなのかMFCクラスのメンバー関数なのかはっきりしる。
528:デフォルトの名無しさん
07/03/02 15:03:02
すでに解決済
529:デフォルトの名無しさん
07/03/04 15:31:06
CListBoxなどのコントロールでの文字列の扱いは
TCHAR(LPCTSTRとか)になってますが
実行時にマルチバイトでCListBoxを使うか
UNICODEで使うかを選択することはできないものなんですか?
530:デフォルトの名無しさん
07/03/04 15:33:45
マクロはコンパイル時に展開されるから
マクロ使わないで使い分ければいい
531:529
07/03/04 15:45:56
>>530
すいません。その辺知識不足なんですが、
Win32APIで例えるとANSI版とUNICODE版があって、
それを使い分けれるってことですか?
532:デフォルトの名無しさん
07/03/05 10:54:26
いいえ、MBCS版とUNICODE版です。
533:デフォルトの名無しさん
07/03/05 12:45:59
知識はいらない
MFCのソース見るだけ
534:デフォルトの名無しさん
07/03/05 13:15:40
ライブラリが違うな
535:529
07/03/05 21:33:00
ソース見たところ、
MBCS版とUNICODE版を同時に使える仕様にはなってない感じですが…。
よくわからんです。
とりあえず素直に別々にコンパイルして
本体を98系とNT系に分けて用意する方が楽っぽいですね。
536:デフォルトの名無しさん
07/03/06 10:23:29
実行時に切り替える必要はない
537:デフォルトの名無しさん
07/03/08 19:12:36
>>509 の人です。
VS2005で作ったMFCプログラムを同様にVS2005のセットアップウィザードを作ったsetup.exe
で実行してFramework2.0をインストすれというメッセージが出たものです。
結論からいうと、このsetup.exeを使わないで~~~.exeだけをコピーして動作させたら動きました。
MFCはスタティックリンクしました。ということで容疑者はセットアップウィザードらしいことが
判明。まあ使わなければいいという短絡的な結論になりました。
538:デフォルトの名無しさん
07/03/08 21:00:41
あほか
容疑者はおまえだよ
セットアッププロジェクトをきちんと作れば何の問題もない
539:デフォルトの名無しさん
07/03/09 00:20:07
MFC にtemplateを組み合わせたフレームワーックってあります?
例えばCCOMBOBOXにSetItemDataPtr使ってある型を足してく場合とかに
をやってくれるようなtemplate関数とかが用意してあるやつとか
MFCのコントロールとtemplateを組み合わせるのって普通はしないものなんでしょうか?
上記のある型を設定した後にプログラムからSetItemDataptrで設定した型のある値を指定したら
SetCurSel あたりで指定した項目に対応するやつを選択状態にしてくれるようなやつとか
540:デフォルトの名無しさん
07/03/09 00:25:10
ダイアログ以外だとポトぺタってできないんですか?
541:デフォルトの名無しさん
07/03/09 00:36:03
ポトペタしたいなら.NETの方がいいよ
542:デフォルトの名無しさん
07/03/09 03:03:47
VB6の間違いだろ
543:デフォルトの名無しさん
07/03/10 00:47:51
FormViewは?
544:デフォルトの名無しさん
07/03/10 01:38:01
VC++のエディタのようなウィンドウを作ろうとしています。
(テキスト表示の右側に●とか矢印が出るウィンドウ)
それで、自分なり考えたのですが、
1. CEditView からビューを作成。
2. OnCreateで左側のマージンを空ける。
3. OnDrawとかで●とか矢印を書く。
でも、そもそもOnDrawが呼ばれません。
他のアプローチがあれば教えていただけないでしょうか?
ちなみに当方WindowsのGUIプログラミングはド素人です。
545:デフォルトの名無しさん
07/03/10 06:23:12
CEditViewの中はCviewにeditコントロールを貼り付けてあるだけで
位置調整に関係するのはCEditView::CalcWindowRectあたりか
546:デフォルトの名無しさん
07/03/10 10:52:35
>>544
CEditView なんぞ使ったらだめ。
CView に全部自前で実装しろ。
どのみち、ど素人にできるテーマではない。
その前にいろいろ勉強してから出直して来い。
547:デフォルトの名無しさん
07/03/10 13:31:21
>>544
とりあえず参考までに。
URLリンク(www.vcppclub.com)
548:544
07/03/11 00:45:00
>>545-547
レスありがとうございます。
>>545
こんなメンバがあったのですね。しらなんだ orz
勉強になります。
>>546
ごめんなさい。今勉強中で行き詰まったので、ちょっと甘えてみました。
>>547
てか、行番号のところに●とか矢印描画したらやりたいことそのままではないですか!!
まだ、ちゃんとソース見られてませんが、これからじっくり追って行きたいと思います。
ありがとうございます。
良スレ発見!!
549:548
07/03/17 14:50:17
__,,..、、- - - .、、...,,___
,,、‐''"~ ̄  ̄``''‐、、
/ \
/ ヽ
/ ヽ
/ / ~~` '' ‐- 、、 ,,__ __ ,,..、、 -‐ '' "~~\ ヽ
| / __  ̄ __ ヽ |
.| { ´ ‐- ....__ __... -‐ ` } .|
.| 〉,,・^'' - .,, ~ i ~ __,,.- ^`・、.〈 |
./ ̄| /,/~ヽ、 `'' ‐--‐ ,.| 、‐-‐'' "~ _ノ~\,ヽ | ̄ヽ
| (` | / ヽ,,_____`‐-、_、..,,___ノ八ヽ___,,.._-‐_'"´___,, ノ ヽ .|'´) |
| }.| ./' \二二・二../ ヽ / ヽ、二・二二/ 'ヽ | { |
.| //| .| / | |. \ | |ヽヽ|
.| .| | .| / | |. \ | | | .|
|ヽ.| | / .| |. ヽ .| .|./ .|
| .| | / | | ヽ | | / / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ヽ .| | / .| | ヽ | | / | 用件を
.ヽ.| | / '二〈___〉二` ヽ | |./ <
| | `-;-′ | | | 聞こうか…
iヽ|. ,,... -‐"`‐"`'‐- 、、 |/i \_________
| ヽ /...---‐‐‐‐‐----.ヽ / .|
| ヽ. ,, -‐ ''"~ ~"'' ‐- 、 / |
.| ヽ ! ./ .|
,,| ヽ. | ./ |、
|\. ヽ / /.|
.|. \. ヽ、____ ___/ / .|
' `  ̄ ̄ ´ '
550:デフォルトの名無しさん
07/03/18 01:58:13
CDialogBarのダイアログで
List Controlを利用しているのですが
カラムを初期化するタイミングはどれがよろしいのでしょうか?
CDialogの場合はOnInitDialogがあったんですが
CDialogBarには無いみたいで
551:デフォルトの名無しさん
07/03/18 10:07:39
>>550
Create()の中で、CDialogBar::Create()呼び出し後にやってます
552:デフォルトの名無しさん
07/03/19 23:04:42
CPropertySheetEx/CPropertyPageEx(PSH_WIZARD97)を利用して、
各ページの上部ヘッダ部に画像付きのウィザードを作成しています。
Windows Vista上で、この方法で作成したウィザードを実行すると、
なぜか各ページの上部の画像が表示されなくなってしまいます。
(Windows XPでは問題なく表示されます)
これを回避する方法はありますでしょうか?
553:デフォルトの名無しさん
07/03/20 10:47:48
Vistaを見捨てる
554:デフォルトの名無しさん
07/03/21 03:11:06
Vistaの互換性の問題なのか、>>552のプログラムがトンチキなのか
555:デフォルトの名無しさん
07/03/21 19:50:40
先生、MFCでアプリ作ってたらエロイ人が
「.NETのメニューみたいにかっこよくしろ」
とか言ってきました。
556:デフォルトの名無しさん
07/03/21 19:59:11
そもそも2ちゃんねるで聞くなんてww
最新スレ50しか読んでないが、質問主は殆ど玉砕だな
昔の2ちゃんねるは玉石混在で光るものもあったが、今は石しかない
プログラム技術@2ch掲示板なんて止めて、
質問主を煽る技術@2ch掲示板として、スレッドも一つか二つにまとめたらどうよ
557:デフォルトの名無しさん
07/03/21 20:03:16
本気で困ってたら2chなんかで聞かないって
特にム板はクズの集まりだしな
558:デフォルトの名無しさん
07/03/21 20:16:01
【審議中】
∧,,∧ ∧,,∧
∧ (´・ω・) (・ω・`) ∧∧
( ´・ω) U) ( つと ノ(ω・` )
| U ( ´・) (・` ) と ノ
u-u (l ) ( ノu-u
`u-u'. `u-u'
559:デフォルトの名無しさん
07/03/21 22:34:13
手前の二人に耳が無いのが気になる
560:デフォルトの名無しさん
07/03/22 17:49:07
>>556-557
トンチキな質問をして煽られたのか。
>>559
「手前」と思わせといて、実は下。
つまり、上に乗っかってる奴で隠れている。
561:デフォルトの名無しさん
07/03/25 03:44:26
>>556
_,,:-ー''" ̄ ̄ ̄ `ヽ、
,r'" `ヽ.
__,,::r'7" ::. ヽ_
゙l | :: ゙) 7
| ヽ`l :: /ノ )
.| ヾミ,l _;;-==ェ;、 ,,,,,,,,,,,,,,,_ ヒ-彡|
〉"l,_l "-ー:ェェヮ;::) f';;_-ェェ-ニ ゙レr-{ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ヽ"::::''  ̄´.::;i, i `'' ̄ r';' } | 久々にトンチキ
. ゙N l ::. ....:;イ;:' l 、 ,l,フ ノ | 玉石混在で光るものもあった
. |_i"ヽ;:...:::/ ゙'''=-='''´`ヽ. /i l" < のが、昔の2chなんだよな
.| ::゙l ::´~===' '===''` ,il" .|'". | 今は石しかないから困る
.{ ::| 、 :: `::=====::" , il | \________
/ト、 :|. ゙l;: ,i' ,l' ノト、
/ .| \ゝ、゙l;: ,,/;;,ノ;r'" :| \
'" | `''-、`'ー--─'";;-'''" ,| \_
562:デフォルトの名無しさん
07/03/25 03:46:22
>>559
pd3dDevice->SetRenderState(D3DRS_ZENABLE, TRUE);
563:デフォルトの名無しさん
07/03/26 00:12:04
コナミの麻雀ゲームの名前なんだっけ
564:デフォルトの名無しさん
07/03/26 05:06:26
真・麻雀だろ、スーファミの
565:デフォルトの名無しさん
07/03/28 03:33:23
mobile fan club の略
携帯で月額料金を支払って登録すると会員になるファンクラブのこと
会員になると
チケットの先行予約やデジタル会報の閲覧
待受け画像や着うた、着メロ、ムービー等のサービスを利用できる。
566:デフォルトの名無しさん
07/03/28 03:34:20
Mass Flow Controlerの略称。
気体の流量制御装置のこと。
真空装置などに微量、あるいは一定流量の気体を導入する時などに使用される。
567:デフォルトの名無しさん
07/03/28 14:03:09
URLリンク(ja.wikipedia.org)
568:デフォルトの名無しさん
07/03/28 15:27:02
スレリンク(gamestg板)
1 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2007/03/12(月) 15:26:41 ID:VIP/Boon
語れ
2 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2007/03/12(月) 15:27:05 ID:9qlxL9Bm
>>1
ちょ、何そのIDwwwwwwwwwwwwwwwwwwwwwwww
569:sage
07/03/29 01:36:44 BE:830995788-2BP(0)
質問です。
XP, Vista 上で動くプログラムを書いているのですが、
ダイアログやその他のUI系フォントとして、XPだと
MS Gothic 系 に、Vista だと主に メイリオ にしたいと考えて
います。
名前直指定とかは行わず、テーマとかシステムに
即したコードにしたいのですが、そもそもMFCのダイアログに
使われるフォントを、うまく切り替える方法すら分かりません。
そもそも、OSのフォントの扱いからしてよく分かってないのですが、
ここから調べていきたいと考えています。
なにかいい解決策がないでしょうか?
570:デフォルトの名無しさん
07/03/29 01:46:24
MFCのダイアログの文字って
リソースで指定するんじゃないんの?
571:569
07/03/29 01:53:07 BE:363560674-2BP(0)
>>570
その通りで、リソースで指定しています。ひとまず、ダイアログの
プロパティにて、"Use System Font" を true にしています。
そうすると、フォント名が"MS Shell Dlg" になります。
あと、開発環境を忘れていましたので、書いておきます。
VS2005 pro sp1
xp sp2, vista
572:デフォルトの名無しさん
07/03/29 06:02:23
ダイアログのフォントを変えたい場合は CDialog::CreateIndirect を使う。
それかダイアログを表示した後でコントロールごとにフォントを変更する。
573:デフォルトの名無しさん
07/04/07 13:39:04
親ダイアログの初期化処理が行われていることを知らせるために、
ポップアップダイアログを作って、プログレスバーで処理中が
わかるようにしようとしています。
プログレスバーは処理が行われていることが分かればよく、
タイマイベントに応じて単純にカウントアップするだけです。
具体的な手順として
①親ダイアログのOnInitDialogで、プログレスバーをもつ子ダイアログを作成
②子ダイアログのタイマイベントを起動(SetTimer)
③親ダイアログの初期化処理
(この間に、子ダイアログのWM_TIMERイベントでプログレスバーをカウントアップ)
④子ダイアログのタイマイベントを終了(KillTimer)
⑤親ダイアログのOnInitDialog終了
としています。
しかし意図した通りには動作しません。
原因として、②で起動したタイマイベントが、⑤のあとに動作を開始しているためです。
(④の処理をコメントアウトしたところ、親ダイアログの表示後に、
OnTimerイベントが呼び出されていることを確認しました。)
そこで質問なのですが、
(i) ②で起動したタイマが、実際は⑤のあとまで起動されない理由と、
(ii) ②で起動したタイマを、②のタイミングで動作させる方法
です。わかる方いらっしゃったらお願いします。
574:デフォルトの名無しさん
07/04/07 13:53:48
>>573
(i)WM_TIMERはメッセージキューに置かれるが
そのメッセージを取りに行く処理(メッセージポンプ)が処理が終わるまで行われていないため。
(ii)子ダイアログを別スレッドで作成する。
とりあえずこれ読んで
URLリンク(msdn2.microsoft.com)
575:デフォルトの名無しさん
07/04/07 14:22:49
>574
ありが㌧。
ただ、子ダイアログを別スレッドにしても、
メッセージポンプ自体が動いてないのだとすると、
子ダイアログの描画がイベントはちゃんとおこなわれるのん?
576:デフォルトの名無しさん
07/04/07 14:39:40
>>575
>>574のURLを読んでくれ
577:デフォルトの名無しさん
07/04/07 14:56:30
(゚д゚)読まぬ!
578:デフォルトの名無しさん
07/04/07 17:31:31
読みたくないんだい
579:デフォルトの名無しさん
07/04/07 23:09:10
>>573
(ii)どうしてもタイマ使いたいってんなら>>574の通り
親のOnInitDialog()の進行状況を表示したいだけなら
親側からユーザー定義メッセージをSendMessage()してやればよい
これ一番単純
このスレ死んでんのかと思ってたよ
>>573が態々ネタ創作したようにも見えるが
580:デフォルトの名無しさん
07/04/08 01:13:11
タイマを使うのが、コード書く分には一番楽だなあ、ぐらいの考えです。
スレッド化はしてみたけど、どうにもうまく動かないところ。
別のところでこけてるのだろけど、いまのとこ原因不明です。
進行を知らせるダイアログをシングルトンで実装して、
MFCクラス、一般C++クラスを問わず、時間のかかる処理のときは、
動作中であることを気軽に示せるようにして、↓みたいな使い方を考えてます。
LoadingDialog->inst()->starg()
//時間のかかる処理
LoadingDialog->inst()->stop()
581:デフォルトの名無しさん
07/04/08 06:13:47
普通に考えたら時間のかかる処理を別スレッドにする。
プログレスバーはステータスバーに表示
582:デフォルトの名無しさん
07/04/08 08:25:19
>>580
逆に考えるんだ。
GUIスレッドはあくまでもGUIに徹し、時間の掛かる処理はワーカスレッドで行なう。
それがイベントドリブンということだ。
583:デフォルトの名無しさん
07/04/08 08:25:41
質問は普通のプログラムの作りかたじゃなくて楽したいということか
だったらどうでもいいや
あと、よく考えたらWinRarなんかはダイアログにプログレスバーだな
あれはダイアログ側で時間のかかる処理か
584:デフォルトの名無しさん
07/04/10 14:26:50
>>571
XP用とヴィスタ用の両方のダイアログを作る
OS種別でどっちかを使う
585:デフォルトの名無しさん
07/04/10 20:08:54
>>556です
>>573
整理した方がいいよ
ワーカースレッドのタイミングで描画させようとすると君のようなパラドックスに嵌ります
この場合ワンクッション置いて、子ダイアログの遷移を親ダイアログがGETできるようにすれば
いいと思う、(インラインでGET関数を記述すればいい、SET関数も必要になると思う)
あくまでも主体は親で子は遷移を知らせるだけ(描画できるタイミングを通知)
一見普通に処理しているように見えてもワーカースレッドのタイミングで描画を行う
プログラムは間違いなく破綻します。
586:デフォルトの名無しさん
07/04/10 20:25:44
>>558です
>>556に騙されるな
587:デフォルトの名無しさん
07/04/10 20:51:13
>>586
>>585だが
なんだよ、マジレスしてるのにww
いいよ585の反対で実装してごらん面白いことになるよww
それから>>573は簡単だからタイマー割り込み使うって書いてたけど
MFCでタイマーの使い方ってネットでたまに見かけるけど
まともな使い方してない場合が多いよMSDNのコードも漏れ的には不満なんだが
588:デフォルトの名無しさん
07/04/10 21:31:23
>>586です
「>>556です」とか突然言い出すからネタで返しただけ。気にするな。
で、まともじゃないタイマーの使い方の説明キボンヌ。何か気になる。
589:デフォルトの名無しさん
07/04/11 13:37:48
各種コントロールを乗せた、WS_CHILD スタイルのダイアログ リソースを用意して、
CControlBar 派生クラスの OnCreate で CDialog::Create を呼び出して
コントロールバーの中にダイアログを入れています。
このとき、ダイアログ上のコントロールのメッセージは、
どうやって受け取ったらよいでしょうか?
int CFooControlBar::OnCreate(.....)
{
......
// コントロールを乗せたダイアログをリソースから読み取る
m_hogeDlg.Create(IDD_HOGE_DIALOG, this);
m_hogeDlg.ShowWindow(SW_SHOW);
}
m_hogeDlg のメッセージを受け取るには?
590:586
07/04/11 19:42:13
>>588
マジレスはもうおしまい後は自分で考えてねww
それではそっけないのでヒントは 「一意」
サービスしすぎww以上
>>>589
C++から勉強しなおした方がいいYOというか
585で説明してるしww
皆さん結果を求めたいがために焦りすぎ、実装する以上もっと気の細かい
シーケンスが必要ですww
質問「何々の関数に、赫々しかじかの引数を与えましたが結果がでません」
答え「準備不足です」
591:556
07/04/11 19:44:18
↑
すまん>>556です
592:デフォルトの名無しさん
07/04/12 09:38:16
CListCtrlについて質問です。
ある関数で、CStringの文字列を引数として渡し、リスト内に同じ項目が
存在しない場合、追加処理を行っています。
LVFINDINFO listInfo;
listInfo.flags = LVFI_STRING;
listInfo.psz = inStr;
// Itemを検索
int findItem = listCtrl.FindItem(&listInfo);
このとき、FindItemを使って検索するときに大文字と小文字を別物として検索することはできますか?
今のままだと、AAAの後にaaaを追加しようとしたときに既に追加されていると判断され、
リストにはAAAしか存在しない状態になってしまいます。
593:デフォルトの名無しさん
07/04/12 09:49:38
>>592
できない。
594:デフォルトの名無しさん
07/04/12 11:10:59
>>592
FindItemで見つけた後、一致しているかどうか自分でチェックしたら?
595:デフォルトの名無しさん
07/04/13 03:27:54
つ仮想リストビュー
596:592
07/04/13 14:43:38
ありがとうございました。FindItemで見つけた後strcmpで再度比較することで対応しました。
ただ、3つ以上重複した場合(aaaa,AAAA,AAAA, aaAAなど)、の場合、
AAAAのが2つ重複して追加される問題があるので
仮想リストビューにする方法も含めて、何か対応を考えて見ます
597:デフォルトの名無しさん
07/04/13 23:24:35
見つかった文字列+1を指すポインタアドレスを引数として再起呼び出しをすれば如何?
598:デフォルトの名無しさん
07/04/14 14:07:26
メッセージを投げたいオブジェクトを生成するために
安易に画面も持たないのに CDialog を継承したクラスをCreate してたり
するんだけど、(要は他のオブジェクトからメッセージを投げるのに、
有効なm_hWndが欲しいだけ)
CDialog じゃなくて CWnd を継承して有効な m_hWnd をもつ
オブジェクトを生成する手段ってあります?
599:デフォルトの名無しさん
07/04/14 15:13:15
CWndを継承すればいいじゃない。何が問題なんだ?
600:598
07/04/14 16:07:09
>>599
CWnd を継承したオブジェクトを Create しても
h_hWnd は 0x0000 なので CDialog を Create してます
なにか、画面に関係しないで CWnd を Create して 有効な
h_hWnd を得られれば文句無いんですが
601:デフォルトの名無しさん
07/04/14 17:12:16
うちでは問題なく作成できるから、あなたのコードに問題がある。
602:デフォルトの名無しさん
07/04/14 18:04:49
コントロールバー (CControlBar) にツールバー (CToolBar) を乗せることはできないでしょうか?
603:デフォルトの名無しさん
07/04/14 18:23:04
>>598
::CreateWindowExでメッセージonlyウィンドウ作って、
CWnd::SubclassWindow使えばいいんじゃね?
604:デフォルトの名無しさん
07/04/14 18:33:19
仮想リストビューってSetItemCountEx()で設定できるのは
1億件までですよね?ドキュメントにはDWORDの最大数まで
サポートしているようなことが書いてありますが、
実際にそこまで設定することは出来ますか?
SetItemCountExを辿っていくとSendMessageで投げていますが、
1億を越える数字を設定するとSendMessageがFALSEを返すので
APIのバグのような気もしますけど。
605:デフォルトの名無しさん
07/04/14 18:36:08
>>604
出来ません。
606:デフォルトの名無しさん
07/04/14 19:05:42
>>604
>ドキュメントにはDWORDの最大数までサポートしているようなことが書いてありますが
実際はメモリ量とか空間の限界とかあるから無理。
607:デフォルトの名無しさん
07/04/14 19:13:09
SetItemCountEx の仕様見ると int になってるけど
608:デフォルトの名無しさん
07/04/14 19:29:02
そりゃまあ実際に限界があるのは仕方ないけど、
なんで「一億」にしてあるのかがわからん。
100000001件にすると表示されないのな。ワロス。
MSDNに書いとけよ。これじゃアメリカ国民全員の名前を
リストコントロールで表示することは出来ないじゃん。
マイクロソフトのくせに自国民の数すらサポートできない
コントロールを作るなんて非難の対象だな
609:デフォルトの名無しさん
07/04/14 20:35:56
大丈夫、マイクロソフトなんて国はないから自国民は一人もいないので。
610:598
07/04/15 08:16:10
>>601>>603
ありがとうございます
今は休み中にてVSEしかないのでMFCが無いので試せないので
明日にでも試そうと思います
ちなみに画面を持たないCWndオブジェクトをCreate()する場合、
どんな引数が望ましいのでしょうか?
611:デフォルトの名無しさん
07/04/15 09:00:12
非表示ウインドウでもhWndはあるだろ
なかったらShowWindowで表示することもできない
ShowWindow
指定されたウィンドウの表示状態を設定します。
BOOL ShowWindow(
HWND hWnd, // handle to window
int nCmdShow // show state of window
);
パラメータ
hWnd
ウィンドウのハンドルを指定します。
nCmdShow
ウィンドウの表示状態を指定します。
612:デフォルトの名無しさん
07/04/15 22:16:49
質問です。
MFCで作成したソフトを公開したいのですが、VS.net2003の入っていないパソコンで
自分の作ったソフトを実行してみると、
mfc71d.dll msvcp71d.dll msvcr71d.dll
が必要です、とでてきます。
これらのdllは勝手に配布しても大丈夫なのでしょうか?
613:デフォルトの名無しさん
07/04/15 22:30:07
いいえ、デバッグ版を勝手に配布してはいけません。
614:デフォルトの名無しさん
07/04/15 22:34:11
>>613 mfc71.dll などdがついていないものなら配布しても大丈夫なのでしょうか?
615:デフォルトの名無しさん
07/04/15 23:04:36
>>614
MSに訊け。つーか付属ドキュメントくらい読め。
616:デフォルトの名無しさん
07/04/16 00:55:13
>615
便乗で質問なんだが、その手の質問は
MSDN購読してなくても答えてもらえるの?
617:デフォルトの名無しさん
07/04/16 06:01:25
そういう重要なことを正規ユーザーが知らないはずがない。
無料のexpressユーザー?と思ったけど
MFCなら製品版使ってるんだろうし、どうやって手に入れたんだろう?
618:デフォルトの名無しさん
07/04/16 17:40:12
すいません。くぐっても答えが見つからないので教えてください。
MFC AppWizerdで作ったDLLを
Win32 Application(SDK)から呼び出せますでしょうか?
619:デフォルトの名無しさん
07/04/16 22:46:38
DLLの作りによる
620:デフォルトの名無しさん
07/04/21 20:43:01
…そのまんまやなw
621:デフォルトの名無しさん
07/04/27 02:12:22
>>617
> 正規ユーザーが知らないはずがない
いや、キッチリとは知らんよ俺は
VC4,VC6,VS8の正規ユーザーなんだけどさw
622:デフォルトの名無しさん
07/04/27 07:54:49
そらあほだ。
623:デフォルトの名無しさん
07/04/27 11:35:15
電車乗ったことあるけどキップの買い方知らないとかそういうレベル
624:デフォルトの名無しさん
07/04/27 11:36:16
地方の人は知らないかもしれないけれど、今や切符を買わなくても電車に乗れるからねぇ。
625:デフォルトの名無しさん
07/04/27 12:38:59
喩えの誤謬に突っ込む莫迦ありき。
626:デフォルトの名無しさん
07/04/27 13:00:28
いや、寧ろ誤謬と思ってないからこそ。
実際、知らなくても利用できると言いたかった。
627:デフォルトの名無しさん
07/04/27 14:21:36
他のソフトならいざ知らず、開発ツールでそんなやつがいるとは驚きだw
628:デフォルトの名無しさん
07/04/27 14:56:35
_bstr_t strData[3];
strData[0] = "0000";
strData[1] = "1111";
strData[2] = "2222";
COleSafeArray sa;
sa.CreateOneDim(VT_BSTR, 3, strData);
_variant_t va = sa;
とやってみると、_variant_tのコンストラクタで例外が出てしまいます。
sa.CreateOneDim(VT_BSTR, 3, strData);
sa.CreateOneDim(VT_BSTR, 3);
とすると通過するので、CreateOneDim()にstrDataを渡す方法が
間違ってるのかなと思うんですけど、
_bstr_t配列はどうやって渡すものなんでしょうか。
それとも、CreateOneDim()には_bstr_t配列は渡せない?
629:デフォルトの名無しさん
07/04/27 14:58:29
> sa.CreateOneDim(VT_BSTR, 3, strData);
> sa.CreateOneDim(VT_BSTR, 3);
> とすると通過するので
sa.CreateOneDim(VT_BSTR, 3, strData);
の部分を
sa.CreateOneDim(VT_BSTR, 3);
とすると通過するので
のミスです。失礼しました。
よろしくお願いいたします。
630:デフォルトの名無しさん
07/04/27 16:25:30
_bstr_tの配列≠BSTRの配列
631:デフォルトの名無しさん
07/04/27 16:41:39
>>630
ということは、_bstr_t配列のままだとCreateOneDim()に直接は渡せないということですよね。
SAFEARRAYとかはまったくの未知で、このへんの使いかたって、
ネット上を探してもなかなか見つからないのですが、
_bstr_t配列やCString配列からCreateOneDim()に渡すBSTR配列を作る方法って、ご存知無いでしょうか。
632:デフォルトの名無しさん
07/04/27 17:06:44
ソース見るかメモリダンプして内部構造調べてみれば?
633:デフォルトの名無しさん
07/04/27 17:21:39
切符買わないってどうやるの?
634:デフォルトの名無しさん
07/04/27 17:29:32
オレはもう何年も切符買ってないなあ
Suicaとパスネットでやってきたが、最近はパスネットもいらなくなったし
オートチャージで入金もない。
車はETCで料金所はとまらないし、旅行先でレンタカー
借りるときもETC車載かどうかを気にしてる
635:デフォルトの名無しさん
07/04/27 17:30:45
飛行機もfelica携帯使ってチェックインもカウンターに行かないし
並ぶことがほとんどなくなった
636:デフォルトの名無しさん
07/04/27 23:24:51
で、これらは相談か?
637:デフォルトの名無しさん
07/04/28 02:40:31
いいえ相談ではありません
日本語の練習です
638:デフォルトの名無しさん
07/04/28 11:12:47
VC6 MFCです
プロジェクトの設定の、デバッグ、C/C++、リンクにプロジェクトオプションがあるのだが
コマンドラインからビルドする場合この引数をどの様に渡したらいいの?
639:デフォルトの名無しさん
07/04/28 11:21:41
CL をコマンドラインから起動するときは、次の構文でオプションとファイル名を指定します。
CL [option...] file... [option | file]... [lib...] [@command-file] [/link link-opt...]
640:デフォルトの名無しさん
07/04/28 11:40:00
>>639
サンクス
641:デフォルトの名無しさん
07/04/29 02:23:43
msdev MyProject.dsp /MAKE "MyProject - Win32 Debug" /REBUILD
とかは?
642:デフォルトの名無しさん
07/04/30 22:58:55
おそらくかなり初歩的な質問なのですが、ダイアログから別ダイアログを開くためにはどうすればよいのでしょうか?
VBのShowのようなコマンドがあるのかと思ったのですが、よくわかりませんでした。
よろしくお願いします。
643:デフォルトの名無しさん
07/04/30 23:05:30
CAboutDlgを参考に
644:デフォルトの名無しさん
07/05/01 05:06:10
>>642
インスタンス生成してから
a) Create() して ShowWindow()
b) DoModal()
のどちらでも。つか、MSDNくらい嫁。
645:デフォルトの名無しさん
07/05/01 12:44:36
VC6 MFCです
メニュー→ツール→オプション→ディレクトリ配下の
インクルードファイル、ライブラリファイルは何処に保存されているのしょうか?
C:\program Files\Microsoft Visual Studio配下はgrepしてみましたがありませんでした
レジストリに記録されているのでしょうか?
知ってる人いたら教えてホスイ
646:デフォルトの名無しさん
07/05/01 13:45:47
パスの順番でファイルを検索する。
647:デフォルトの名無しさん
07/05/01 14:50:26
>>645
ちょっと探してみたがレジストリの
HKEY_CURRENT_USER\Software\Microsoft\DevStudio\6.0\Build System\Components\Platforms\Win32 (x86)\Directories
に入ってるみたいだよ
648:デフォルトの名無しさん
07/05/01 17:28:42
>>647
>>645ですが
神が降臨しました、ありがとう実は現在ではVC6 MFCのUIが非常に悪いので
秀丸のマクロと融合させてできる限りの操作を秀丸中心にお行おうと思っていたところです
そういう訳で探していました、本当にありがとね
処でMFCで作成したプログラムはコマンドラインからビルド、コンパイルまで出来るのでしょうか?
(rcファイルはVCで作ってあると仮定してです)?
649:デフォルトの名無しさん
07/05/01 17:40:50
そりゃあできるっしょ。
プロジェクトのプロパティで、コンパイルとリンクのコマンドライン見られなかったっけ
それ参考にしたらいいと思う。
650:デフォルトの名無しさん
07/05/01 17:45:48
>>649
サンクスです、取り合えず今レジのバックアップを保存したところです
これからゴリゴリとマクロを書いていきますww
651:デフォルトの名無しさん
07/05/01 18:35:22
全然見当はずれの方向に進んでるみたいだけど
相当頭堅そうだから本人のやりたいようにやらせて置くのが一番だな
わざわざレジストリの場所教えてやったやつはかわいそう
652:デフォルトの名無しさん
07/05/01 21:19:12
Platform SDKについてるMFCのソースをビルドすれば
OSについてるものとまったく同じDLLが出来上がるんですか?
653:デフォルトの名無しさん
07/05/02 00:37:19
おい、Platform SDKはもう無くなったって、誰か教えてやれ。
654:デフォルトの名無しさん
07/05/02 17:48:50
VC2005 MFCです。
複数のモードレスダイアログを入れ子のような感じで作成したいのですが
孫のウィンドウを作成したところで正常に動作しなくなってしまいました。
実際のコードは下のように書いています。
//ビューでマウスがクリックされたら子ウィンドウとしてモードレスダイアログを生成
void CtestView::OnLButtonDown(UINT nFlags, CPoint point)
{
CTestDlg *testdlg;
testdlg = new CTestDlg();
testdlg->Create(CTestDlg::IDD);
testdlg->SetParent(this);
testdlg->ShowWindow(SW_SHOW);
CView::OnLButtonDown(nFlags, point);
}
//ビューで作成した子ウィンドウのボタンが押されたら、孫のモードレスダイアログを生成
void CTestDlg::OnBnClickedButton1()
{
CTestDlgB *testdlg;
testdlg = new CTestDlgB();
testdlg->Create(CTestDlgB::IDD);
testdlg->SetParent(GetParent());
testdlg->ShowWindow(SW_SHOW);
}
何か根本的な勘違いをしてしまっているのでしょうか?
初歩的な質問ですいません、よろしくお願いします。
655:654
07/05/02 17:52:31
少し変えて試してみたコードをそのまま書き込んでしまいました。
testdlg->SetParent(GetParent());
↓
testdlg->SetParent(this);
でした。
656:デフォルトの名無しさん
07/05/02 18:58:47
「正常に動作しなくなってしまいました」を説明してくれ。
解決の重要な手がかりなんだから。
657:デフォルトの名無しさん
07/05/02 19:14:54
関係ないけど
モーダルならそういう風にローカル変数でもいいけど
モードレスだと関数抜けた後のことが気になる。
658:デフォルトの名無しさん
07/05/02 19:17:27
ローカル変数ではないでしょ。
PostNcDestroy で delete this が入ってるか、メッセージで何とかしてるのかと
659:654
07/05/02 21:03:30
>>656
すいません、説明不足でした。
わかっている限りだと2パターンの変な挙動をしていて
1つはダイアログのウィンドウ自体は生成されているようでウィンドウの移動などはできるのですが
再描画のコードが動作していない時のような感じになる事があるのと(必ずというわけでも無いようです)
生成した孫ウィンドウがアクティブな間は何の問題も無く動作しているように見えるのですが
一度、子のウィンドウをアクティブにしてしまうとアプリケーション自体がフリーズしたような
状態になってしまうといった感じです。
念のためSDIの新規プロジェクトを作り直して見ても結果は同じでした。
>>657,658
一応 PostNcDestroy で delete this をしていました。
こういう場合でもスタティックかグローバル変数にしておいた方が安全なのでしょうか?
660:デフォルトの名無しさん
07/05/02 21:44:10
>659
思いつきで書いただけだから
「関係ないけど」と断ってる
661:デフォルトの名無しさん
07/05/02 21:45:08
>>659
URLリンク(msdn2.microsoft.com)
>if hWndNewParent is not NULL and the window was previously a child of the desktop,
> you should clear the WS_POPUP style and set the WS_CHILD style before calling SetParent.
>Windows 2000/XP: When you change the parent of a window, you should synchronize the UISTATE of both windows.
なんでSetParent使ってるの?
ダイアログリソースに子スタイル設定して、Createで親指定すればいいのに。
662:デフォルトの名無しさん
07/05/03 00:14:49
あの最低な質問かもしれないですが、万が一という可能性もあるかもしれないので
質問させてください
MFCでコンソールアプリって作成出来ないですよね、バージョンは問いません。
663:デフォルトの名無しさん
07/05/03 00:24:43
いや、普通にできるが。
664:デフォルトの名無しさん
07/05/03 00:52:33
>>663
え~まじっすか?
新規作成→プロジェクトからはMFC ActiveX ContorolWizard or MFC AppWizard(dll) or MFC AppWizard(exe)しかないのだけど?
これじゃあコンソールアプリは作成できないよね?
665:デフォルトの名無しさん
07/05/03 00:57:51
>>664
Win32コンソールプロジェクトを選択して、詳細でMFCサポート追加しろ。
666:デフォルトの名無しさん
07/05/03 01:16:56
>>665
そういう裏技があったのね、サンクス
667:デフォルトの名無しさん
07/05/05 09:51:02
CStringを返す関数から戻ってきたクラスは自分で廃棄しないでも良いですか?
668:デフォルトの名無しさん
07/05/05 10:28:54
CStringを返すと、呼び出し側ではそれのコピーを受け取るだろう。
669:デフォルトの名無しさん
07/05/06 00:16:24
よくこういう仕様のクラスあるけど腐ってるよね?>CString
一見便利そうに見えるけどインスタンスがハッキリしないから
すげー扱いづらい
こういう仕様デフォにする奴ってアフォだろ
なげー文字列をCStringで扱うとアフォかってほど遅くなる
結局、使えない
670:デフォルトの名無しさん
07/05/06 00:49:03
○○○
○(・ω・)○ ソンナコトイワレテモ
○○○ ウチ、ボン・デ・ライオンヤシ
.c(,_uuノ
671:デフォルトの名無しさん
07/05/07 11:46:34
>>669
>インスタンスがハッキリしないから
君が何を言っているのか判らないよ…
理解できてないだけじゃ?
672:デフォルトの名無しさん
07/05/07 11:54:13
>>669
せめて他の文字列を取り扱う手段と比較してから結論を出してくれ。
673:デフォルトの名無しさん
07/05/07 17:21:39
なんか、C/C++以外の言語と勘違いしてんじゃね?
674:デフォルトの名無しさん
07/05/07 18:55:30
リソースエディタでダイアログボックスを作って、
CDialogを継承した派生クラスを作りました。
コントロールは、追加したメンバ変数を操作して
扱えましたが、ダイアログ自身はどうやれば操作
できるのでしょうか。
タイトルバーの文字列を変更する方法を模索中です。
this->SetWindowText("タイトル文字列");
を試すと異常終了だし。
675:デフォルトの名無しさん
07/05/07 19:29:26
宇宙天地 與我力量 降伏群魔 迎来曙光
我が左手に封じられし鬼よ
今こそその力を、示せえーー!!
うおおおおおおーーー!!!
俺の生徒に、手を出すなあーーー!!!!
676:デフォルトの名無しさん
07/05/07 20:10:38
>>674
異常終了の詳細キボンヌ
677:デフォルトの名無しさん
07/05/07 20:22:51
>>676
「Visual C++ Runtime Error [中止][無視][キャンセル]」
のような感じ文面のダイアログが出て終了。
本来ならそれで正解のはずということでしょうか。
何らかのプログラム上のミスが原因で異常終了が出てるのではないか
という意味でしょうか。
678:デフォルトの名無しさん
07/05/07 20:30:27
SetWindowTextをどこで呼び出してる?
コンストラクタの中とかじゃダメだよ。
ちゃんとウィンドウが作成されてCDialogオブジェクトに
アタッチされてからじゃないと。
679:デフォルトの名無しさん
07/05/07 20:40:02
>>672
じゃ、mallocで確保した領域に突っ込んだ文字列でいいよ
これで想像付く?
後付けであれがないこれがないごちゃごちゃいうなよぶっ殺すぞ
680:デフォルトの名無しさん
07/05/07 20:43:58
>>678
エディットコントロールやスタティックテキストの値を変更している直後
で呼び出してます。
SetWindowTextで正解で、やはり何かプログラム上のミスでしたか。
わかりました、ありがとうございます。
681:デフォルトの名無しさん
07/05/07 20:50:22
CDialogもCWndの派生クラスだしな
そもそもエラーで止まったところで何エラーなのか調べなさいよ
682:デフォルトの名無しさん
07/05/07 20:58:27
イヤです
683:デフォルトの名無しさん
07/05/07 22:29:57
>>679
想像も何も、あんたが比較して実際に遅いかどうか判断しなさいよ。
684:デフォルトの名無しさん
07/05/07 22:39:03
>>683
CStringは糞だろ
文字列に1文字ずつ足していくとどんどん遅くなってく類だろw
685:デフォルトの名無しさん
07/05/07 22:42:11
どうやって足しているのか興味深いなぁ。
まさかとは思うが、CString foo = ""; for (;;) {foo = foo + '-'; std::cout << foo << std::endl;} とかしちゃってるんだろうかw
686:デフォルトの名無しさん
07/05/07 23:04:49
横レスだけど、それで突然思い出したから自分用のメモ代わりに書いとく。
CString hoge, hoge2;
strcpy(hoge.GetBuffer(20), "this is a test.");
hoge=""; //クリアしたつもりだけど何故かクリアされていない
int length=hoge.GetLength(); //この値は確かにゼロ
hoge2=hoge; //でもhogeもhoge2も"this is..."が入る
hoge="AAA"; //これなら上書きされる
int length2=hoge.GetLength(); //この値は3
hoge=""; //今度はきちんとクリアされる
687:デフォルトの名無しさん
07/05/07 23:06:47
>>685
mStr += strbuff;
mStrはCString型のメンバ変数、strbuffは引数からうけとったchar*
メソッド実行するたびに鬱になるw
後、CStringの変数を引数に突っ込んで中身を変更したいときとかウザイ
transUnko(char* unko,char* chinko)
ってときにいちいち移し変えなきゃいけねぇじゃん
それか
transUnko(CString *unko,char *chinko)
作らなきゃいけねぇじゃん(俺の知識だと)
後、
strXXX系の関数でいい感じにすでにこさえてあるC言語自分ライブラリ使いたいときも面倒
つーか、気軽に文字列型として扱えないところがウンコだね
うにこーど?いらねぇってw対応予定ねーよ。マジでw
って書いてみたけどさ、
もし簡単にできるにしてもできることがわかりにきぃ
ねっとりべっとりしてやがんだこのクラス
つかいにくーい!
688:デフォルトの名無しさん
07/05/07 23:18:12
MFC以外でもCString使いたいという話をよく聞くし、
MFCの中では評判いいクラスだと思う。
慣れないと使いにくいのは確か
689:デフォルトの名無しさん
07/05/07 23:24:37
>686
CString::GetBuffer
解説
GetBuffer 関数から返されるポインタを使って文字列の内容を変更するときは、
次に他の CString メンバ関数を使う前に、ReleaseBuffer 関数を呼び出す必要があります。
690:デフォルトの名無しさん
07/05/07 23:38:10
MFCを使うDLLの遅延ロードってNGなのかな?
というのも、delayimp.libの中ではAfxLoadLibrary()ではなく、
LoadLibrary()を使っているから、どうなんだろう??
691:デフォルトの名無しさん
07/05/08 01:12:30
もともと遅延ロードってのは、セグメントを分けてれば Windows がちゃんとやってくれたんだよな。
MFCが自動的にやってくれるようになっただけで。
692:デフォルトの名無しさん
07/05/08 03:18:26
GetBuffer 関数から返されるポインタを使って文字列の内容を変更するときは、
次に他の CString メンバ関数を使う前に、ReleaseBuffer 関数を呼び出す必要があります。
CString hoge, hoge2;
strcpy(hoge.GetBuffer(20), "this is a test.");
hoge=""; //クリアしたつもりだけど何故かクリアされていない
int length=hoge.GetLength(); //この値は確かにゼロ
hoge2=hoge; //でもhogeもhoge2も"this is..."が入る
↑↑↑ここでコンパイル時にエラー出してくれりゃいいのに
hoge="AAA"; //これなら上書きされる
int length2=hoge.GetLength(); //この値は3
hoge=""; //今度はきちんとクリアされる
693:デフォルトの名無しさん
07/05/08 05:58:01
>>692
逆だな。ReleaseBuffer()する前にそうやってバッファを変更できないようにするためにGetBuffer()があるんだ。
つまり、fclose()しないでfopen()し直して、ファイルが更新されていないって文句言うようなもんだ。
>>687
少なくとも、レガシーな文字列とCStringを混在させて使うのが間違い。
型が違うのだから、相互にそのまま使えないのは当然だと思うが。
例えばprintf()に渡すように文字列を変更しないならキャストオペレータのお蔭で手間要らずなんだし。
Ex.
void printSample(const char * foo) {printf("%s\n", foo);}
CString bar = "Bar";
printSample(bar);
文字列を変更する関数は参照でも渡せばいいし。
Ex.
void buildString(CString & foo) {foo += foo;}
CString bar = "Bar";
buildString(bar);
694:デフォルトの名無しさん
07/05/08 11:21:24
いまいち、>692 がなにをしたいのか、全くわからん。
C++の事を何か勘違いしてるんじゃないだろうか。
695:デフォルトの名無しさん
07/05/08 11:25:02
レガシー大好きっ娘に何言っても無駄
696:デフォルトの名無しさん
07/05/08 22:15:50
ATLやWTLってSTLやBOOST、LOKIと親和性ありますか?
697:デフォルトの名無しさん
07/05/08 22:56:29
ないよ
698:デフォルトの名無しさん
07/05/08 23:29:51
STLと親和性高いWin32GUIライブラリがあった気がするんだが思い出せない
699:デフォルトの名無しさん
07/05/08 23:45:24
リストビューオブジェクトに一次元配列を直接セットする方法はないでしょうか?
いまはループで回してsetItemでセル一個ずつにセットしてます。
もっと効率がいい方法があればいいのですが。
よろしくお願いします。
700:デフォルトの名無しさん
07/05/09 00:47:08
>>699
つLVS_OWNERDATA
701:デフォルトの名無しさん
07/05/09 01:13:12
>>698
Win32 GUI Generics
URLリンク(www.torjo.com)
URLリンク(sourceforge.net)
702:デフォルトの名無しさん
07/05/09 14:03:56
>>694
>C++の事を何か勘違いしてるんじゃないだろうか。
いやいや、
>↑↑↑ここでコンパイル時にエラー出してくれりゃいいのに
なんて書くくらいだから
勘違いとかそういうレベルじゃない。
703:デフォルトの名無しさん
07/05/09 15:19:50
ATL/STLはSTLと一緒に使える
704:デフォルトの名無しさん
07/05/09 21:51:00
VC6.0で下記のページをみてステータスバーをダイアログにセットしたのですが、
SetTextしても文字が表示されません。
URLリンク(athomejp.com)
MSDN等調べてみたのですが、実装方法がいろいろありすぎて、
どれが最適で何をしたらいいのかわかりませんでした。
すみませんが、よろしくお願い致します。
705:デフォルトの名無しさん
07/05/09 21:58:18
>>701
ちょっと期待してたんだけど、全然更新されてないね…
706:デフォルトの名無しさん
07/05/13 01:32:28
宣伝なんだが、構いませんね!
URLリンク(wiki.livedoor.jp)
ここで、将棋の駒を擬人化するプロジェクトをやってるんだけど、プログラマにソースをもって逃げられてしまいました。
ついては、オープンソースで、新しくプログラムを作ろうと思っています。
MFCを使って作られたプログラムを弄れて、ギャルゲっぽいものに興味があって、協力出来る人がいたら、来てくれませんか。
現行スレは、↓です。
スレリンク(news4vip板)
宜しくお願い致します。
707:デフォルトの名無しさん
07/05/13 01:41:34
>>706
追記です。
現行スレが落ちていたら、↓に書き込みを下さい。
URLリンク(ex14.vip2ch.com)
708:デフォルトの名無しさん
07/05/13 02:10:27
>>706
少しはまともな奴がいるっぽいけど
雑魚ばっかで話にならない
所詮妄想ばっかり先行してる烏合の衆か。
将棋部分に興味ないとかまったくわかんないとかレスが出るだけで俺は参加したくない。
馬鹿じゃねぇの
突破口だけいうと
フリーで将棋プログラム公開してる人に頼み込んで
画像表示部分だけちょいっと弄らせてもらって好きな絵表示できるようにしてもらったほうが
ナンボか可能性ある。
709:デフォルトの名無しさん
07/05/13 02:39:52
>>708
どこを見たのか分からんが結構な物言いだな、特に前半
ちらっと覗いてみたが、そんなレスはなかったと思うが
710:デフォルトの名無しさん
07/05/13 03:27:34
>>709
だいたいこの状況じゃ
一番苦しいのってまちがいなくメインプログラマーでしょ?
絶対やんねぇよ
ゲーム製作をなめてる
絵のことしか興味ないならビューワーでも作ってろっての
好き勝手要望出すだけの立場の奴等なんかプログラマーは殺意しか湧かない
ゲーム製作現場だって金もらえるからしょうがなく仕事してるのがプログラマーだ
この状況でソフト作ったらまちがいなくすべて俺の手柄だと俺だったら思うね。ていうか間違いねーよ。
それなのにオープンソースにします?はぁ?ふざけろ
だからさ、こういうのやるつもりなら企画をする人間が間違いなくメインプログラマーを張れる人間でなければ絶対に頓挫する
ゲーム製作で一番大変なのはまちがいなくプログラマーだ
実際身動きとれないでしょ?
どういうシステムにしてどういう形のデータが必要になるのか?
プログラマーがいなくてもここまではできますっていう部分あるか?
欠片も浮かばねーだろ?一歩も身動きがとれないでしょ?
711:デフォルトの名無しさん
07/05/13 04:12:48
うん、しかも金の流れが気になるー
偉そうにリーダー気取ってる奴の懐にいくらか入ってんじゃねーの?
ブログとも繋がってるしな
712:デフォルトの名無しさん
07/05/13 06:21:48
>Q、バグ多すぎってレベルじゃねーぞ!!
> A、バグ報告は多ければ多いほど、プログラム修正の参考になります。
なりません。
713:デフォルトの名無しさん
07/05/13 08:30:02
手伝うどころか、優越感を得るための突っ込み先になってるな
大人気ないぜ
714:デフォルトの名無しさん
07/05/13 08:31:06
>>711
え、どこに繋がってる?
715:デフォルトの名無しさん
07/05/13 12:30:42
>>713
興味が先行してうっかりこれのメインプログラマーになっちゃった奴が可哀想だなと
716:デフォルトの名無しさん
07/05/13 14:10:01
VC++ 2005で開発を行っています。
CListCtrlで「大きいアイコン」表示をした時、スクロールの方向はどうしても、横スクロールになってしまいますが、
これを縦スクロールに変更したいと思っています。
どうやれば、縦スクロールに変わるのでしょうか。
よろしくお願いします。
717:デフォルトの名無しさん
07/05/13 14:43:03
くだすれVisual C++(超初心者用)その4
スレリンク(tech板:946-951番)
から引っ越してきました。よろしくお願いします。
VS2005のMFCです。
CMainFramのID_FILE_NEWからOnFileNew関数を追加しました。
この関数で必要な処理の後、追加前の本来の処理を呼びだすか、
同等の処理を行いたいのですが方法がわかりません。その方法を教えてください。
718:デフォルトの名無しさん
07/05/13 14:44:14
>717
馬鹿には使えないからあきらめましょう
719:デフォルトの名無しさん
07/05/13 14:47:10
教えるだけ無駄だな
720:デフォルトの名無しさん
07/05/13 15:33:57
MFCに嫌気がさした人の数→
スレリンク(tech板)
721:デフォルトの名無しさん
07/05/13 16:12:08
>717
OnFileNewを呼ぶ
722:デフォルトの名無しさん
07/05/13 16:12:30
>>717
どちらかというと、CDocument::OnNewDocumentでどうにかすべきじゃね?
723:717
07/05/13 16:19:03
とりあえず解決しました。
CMainFrameにメッセージを割りあてたのが間違いでした。
CWinAppにプロテクトのOnFileNewがあってこれがデフォルトの処理のようです。
CxxAppに割り当てて、もとからあった
ON_COMMAND(ID_FILE_NEW, &CWinApp::OnFileNew)を削除したら目的の動作になりました。
OnFileNewがプロテクトメンバだったので無いとか呼べないとか思ってしまったようです。
724:デフォルトの名無しさん
07/05/13 16:29:45
>>715
なるほど、このスレの住人に対する優越感だったってわけか
725:デフォルトの名無しさん
07/05/13 16:43:45
なんかよくわからんこと言ってるけどそのwiki誰に金入ってるかわからんぞ
726:デフォルトの名無しさん
07/05/13 16:50:27
>>725
アフィってこと?
そんな感じに見えないんだけど……。
727:デフォルトの名無しさん
07/05/13 17:07:40
可哀想だと思う事が優越感だって、わからんのかね
728:デフォルトの名無しさん
07/05/13 17:49:34
>>726
じゃあ、稼がせてやったらいいよw
729:デフォルトの名無しさん
07/05/13 18:18:01
>>728
質問に答えないで笑うだけとは、お前、アフォにしか見えんな
そんなに貶めたいなら、向こうで文句言ってくればいいだろうに
こっちに問題を持ち込むなよ
730:デフォルトの名無しさん
07/05/13 18:22:59
>>729
そのレスを>>706に付けずに俺に言う辺り、お前も相当頭おかしいだろw
731:デフォルトの名無しさん
07/05/13 18:27:15
>>730
反応するよりましだと思うが
まあいいや、お前がいなくなったらまたこよう
732:デフォルトの名無しさん
07/05/13 18:32:43
なんか、大変な事になってる……
俺はただ単に、アフィしてるような場所ならいかないけど、そうじゃないなら手伝っても良いかなって思っただけなんだけど
733:デフォルトの名無しさん
07/05/13 18:50:05
だからそういう話はあっちでやってくれ頼む
734:デフォルトの名無しさん
07/05/13 20:27:54
>>716お願いします。
735:デフォルトの名無しさん
07/05/13 23:10:24
>>716
LVS_ALIGNTOP。
プロパティウィンドウなら、表示-Alignment-Topを選択。
736:デフォルトの名無しさん
07/05/14 00:31:26
>>735
ありがとうございます、一発で解決しました。
737:デフォルトの名無しさん
07/05/17 01:56:51
CMenu の TrackPopupMenu でポップアップ表示状態で処理がいったん停止している状態のプログラムがあるとします
これに対して外部からの通信などによって破棄処理がキックされたとします
すると TrackPopupMenu の後の処理が終わっていないためなのかエラーとなって不正終了してしまいます
これを防ぐにはどうしたら良いでしょうか?
(≒ OnDestroy でポップアップを正常に終了させるにはどうしたら良いでしょうか?)
( つまり TrackPopupMenu の後の処理を実行させるということです)
VK_ESCAPE をポップアップの親ウィンドウに SendMessage することなどを考え付いたのですが、
それでもうまくいかずにほとほと困っております
何かご存知でしたら教えてくださいm(_ _)m
738:デフォルトの名無しさん
07/05/17 18:27:58 BE:27175027-2BP(222)
>ポップアップ表示状態で処理がいったん停止している状態
にならないようにする=時間のかかる処理の合間にメッセージループを回すようにする
739:デフォルトの名無しさん
07/05/17 18:39:02
>>738
TrackPopupMenu の動作を知らんのか
740:デフォルトの名無しさん
07/05/20 00:15:39
>>737
>TrackPopupMenu の動作云々の前にお前が何をしたいのかが解らんなw
741:デフォルトの名無しさん
07/05/20 10:29:32
>>737
EndMenu
742:デフォルトの名無しさん
07/05/20 12:17:31
CStringのFormatMessageはFORMAT_MESSAGE_FROM_SYSTEM使えないですか?
743:デフォルトの名無しさん
07/05/20 12:43:18
CString::FormatMessageのソース見ればわかる
744:デフォルトの名無しさん
07/05/22 00:53:15
>>741
情報ありがとうございます
ところで、その関数はどのように使用すればよろしいですか?
インターネットで検索してみたのですが、適切な情報が見つからなかったのですが……
745:デフォルトの名無しさん
07/05/22 01:55:02
>>744
URLリンク(msdn2.microsoft.com)
746:デフォルトの名無しさん
07/05/22 22:37:22
>>745
ありがとうございます
英語ですか……
中学の時英語は常に1or2だった自分には辛いですねorz
747:デフォルトの名無しさん
07/05/23 05:34:15
Win32APIに(*´Д`)ハァハァできるようになれば、すぐ読めるようになるよ♪
マニュアル英文だから変な構文も使われていないし、まともに日本語訳する必要も無い。
748:デフォルトの名無しさん
07/05/25 14:33:09
CMainFrame::OnInitMenuPopup()で
メニューのポップアップ内を動的に作ろうとしてるんですけど、
このポップアップ項目の種類(たとえば「お気に入り」とか)は
どうやって調べればよいのでしょうか。
ポップアップ項目自身にはIDは付けられませんよね。
メニューの複数箇所やコンテキストメニューにも
同じ「お気に入り」ポップアップを置きたいので、
OnInitMenuPopup()の中で「お気に入りかどうか」を判断したいのですが。
749:デフォルトの名無しさん
07/05/25 18:33:49
誘導されてきました。
通信受信プログラムで受信データをエディットコントロール(複数行表示)に表示しているのですが、
以下のコードでは、エディットコントロールに文字列を追加する際に必ずスクロールされてしまいます。
スクロールされない方法を教えてください。
LineScrollで戻すと、1行書くごとに「下へスクロール→上へスクロール」となり、上下にスクロールが発生してしまい
とても見づらくなってしまいます。
「スクロールなし」でエディットコントロールに文字列を追加できないものでしょうか?
int iLen = edit->GetWindowTextLength();
edit->SetSel(iLen, iLen);
edit->ReplaceSel("Hello\n");
WinXP & Visual Studio 2003 & mfc7です。
750:デフォルトの名無しさん
07/05/25 18:36:41
>>749
スレリンク(tech板:594番)の名前欄は調べた?
751:デフォルトの名無しさん
07/05/25 19:09:59
>>750
そ、そんなところに... (^^;)
やってみます。
752:印刷が遅いのですが
07/05/26 12:43:26
ただいま、印刷のテストをしてます。
ネットで見つけたサンプルコードで、印刷はできたのですが、
ものすごく遅いのです。
3000*3000の画像をプリントするのに、1時間かかります!
WindowsXPですが、他のアプリから印刷する場合は数分で印刷できるので、
プリンタやOSやドライバの問題ではなく、プログラムの仕方の問題だと思うのですが、
単純にプリンタ用のpDCに画像を送るだけでは速くはならないのでしょうか?
753:印刷が遅いのですが
07/05/26 12:51:16
以下は、ネットで見つけたサンプルコードで、このままでパターンが印字されます。
~View::OnFilePrint(){
CPrintDialog myPtDlg(FALSE); HDC myPtDC; CDC myDC; DOCINFO myDocInfo;
if(myPtDlg.DoModal() == IDOK){
myPtDC = myPtDlg.GetPrinterDC(); myDC.Attach(myPtDC);
myDocInfo.cbSize = sizeof(myDocInfo); myDocInfo.lpszDocName = NULL; myDocInfo.lpszOutput = NULL;
myDocInfo.lpszDatatype = NULL; myDocInfo.fwType = 0;
myDC.StartDoc(&myDocInfo); CDC* pDC=GetDC();
myDC.StartPage();
for(y=0;y<3000;y++){ for(x=0;x<3000;x1++){
myDC.FillSolidRect(x,y,1,1,RGB(x,y,+y));
} }
myDC.EndPage();
myDC.EndDoc(); ReleaseDC(pDC); ::DeleteDC(myPtDC);
} }
754:印刷が遅いのですが
07/05/26 13:06:10
すみません>>753の訂正です。CDC* pDC=GetDC(); は不用でした。
>>753のコードをいじれば画像も印刷できるのですが、遅いです。
たとえば、下のように記述すると速いのですが、
for(y=0;y<30;y++){ for(x=0;x<30;x1++){
myDC.FillSolidRect(x,y,100,100,RGB(x,y,x+y));
} }
大きい画像の場合は、1ドットずつ描くしかないですよね?
755:デフォルトの名無しさん
07/05/26 14:11:23
いいえ
756:デフォルトの名無しさん
07/05/26 15:04:14
>>754
なんで大きい画像だと1どっとずつやるしかないの?
757:印刷が遅いのですが
07/05/26 15:48:38
>>756
1ドットずつやらないで済む方法があれば、それを知りたいわけです。
758:デフォルトの名無しさん
07/05/26 16:25:45
頭悪いな
759:デフォルトの名無しさん
07/05/26 16:59:17
>>757
小さい画像は1ドットずつじゃないの?
760:デフォルトの名無しさん
07/05/26 17:00:51
ドットインパクトプリンタの話はスレ違いだぞ
761:デフォルトの名無しさん
07/05/26 17:04:24
試しに3000*3000のビットマップ印刷してみれば?
762:デフォルトの名無しさん
07/05/26 17:08:29
>>757
BitBltとかいう関数ねぇ?
763:デフォルトの名無しさん
07/05/26 17:09:47
>>760
みたとこアホの子なので問題の切り分けなんて無理でしょう
764:デフォルトの名無しさん
07/05/26 17:28:15
1ドット書くのにFillSolidRect使うアホ
765:デフォルトの名無しさん
07/05/26 17:41:42
もうちょっと頭使ってもバチ当らないよねw
766:デフォルトの名無しさん
07/05/26 17:59:20
3Dを使うゲームよりドット絵のゲームが好きだ!!!!
767:デフォルトの名無しさん
07/05/26 18:13:36
>>766
∧_∧
( ・ω・) <俺にそんなこと言われてもね
( MFC )
./ つ
( / ̄∪
∧_∧
( ・ω・) <どっちかっていうと俺の出番じゃね?
( GDI+)
./ つ
( / ̄∪
∧_∧
( ・ω・) <いやいや俺だろ
(DirectX)
./ つ
( / ̄∪
768:印刷が遅いのですが
07/05/26 18:15:28
>>755-766
そんなことを言ってる貴方たちも、本当は知らないのでしょう?
それとも印刷に関しては企業秘密かなんかですか?
自分が苦心して見つけた方法を、簡単に他人に話したくない気持ちはわかりますよ。
一緒に問題を解決しようという気持ちはないわけですか?
自分が知ってる方法が、最善だという確信があるわけですか?
BitBltを使う方法はもちろん知ってます。
ただ、それだと若干手順が増えますのでね。
769:デフォルトの名無しさん
07/05/26 18:22:16
>>768
だから俺がBitBltって教えてやったじゃんw
770:デフォルトの名無しさん
07/05/26 18:22:16
おぬしなにやつじゃ
771:デフォルトの名無しさん
07/05/26 18:25:19
>>768
何様だよお前w
BitBlt抱えて空へ羽ばたけよw
772:デフォルトの名無しさん
07/05/26 18:26:18
>そんなことを言ってる貴方たちも、本当は知らないのでしょう?
適材適所なので、あんたの求めるケースの適切解は内容が判らない限り説明しようが無い。
>それとも印刷に関しては企業秘密かなんかですか?
企業秘密にならない範囲でなら説明するに吝かではない。
>自分が苦心して見つけた方法を、簡単に他人に話したくない気持ちはわかりますよ。
勝手に判られても困る。寧ろ、それが判ると言い張るならもう少し言葉を選べ。
>一緒に問題を解決しようという気持ちはないわけですか?
ないな。
>自分が知ってる方法が、最善だという確信があるわけですか?
いいや、あくまでも適材適所。
>BitBltを使う方法はもちろん知ってます。
>ただ、それだと若干手順が増えますのでね。
増えるから何? 手順が増えてもそれが適切解なら選択すべきでは?
#適切解かどうかは知らんが。
773:印刷が遅いのですが
07/05/26 18:42:00
>>772
>>ただ、それだと若干手順が増えますのでね。
>増えるから何? 手順が増えてもそれが適切解なら選択すべきでは?
そうですか。
だらだら、手順が増えていいなら、どんなこともできますよ。
一応、なるべく、簡潔なコードで、よりよい効果を期待してプログラムをしてるわけで、
コードの増えるBitBlt以外にも方法があるかどうか知りたかったのですが、
BitBltが最善なら、それで行くことにしますよ。
774:デフォルトの名無しさん
07/05/26 18:46:19
ダメだこりゃ
775:デフォルトの名無しさん
07/05/26 19:09:17
馬鹿な・・騙りじゃなかったのか
776:デフォルトの名無しさん
07/05/26 19:15:19
apiを無駄に3000*3000回呼んでも見た目が大事だよな
777:デフォルトの名無しさん
07/05/26 19:23:20
>>773
おお、成長したじゃんw
1ドット書くのにFillSolidRect使ってたアホの言葉とは思えないねw
778:デフォルトの名無しさん
07/05/26 20:03:39
>>777
URLリンク(sylphys.ddo.jp)
779:デフォルトの名無しさん
07/05/26 23:43:50
まあ、昔は大きな画像をプリンタDCに BitBlt出来なかったって事はある。
だから、ひとつひとつFillRectしたような実装や、大きいBitmapを小さく小分けしてBltしたりとか、
そりゃ小技を使ったよ。
それ、いまでも、ダメなのかな。
780:デフォルトの名無しさん
07/05/27 00:05:18
いくらか小分けにすればいいだけであって1ドットずつはやらんよなw
781:デフォルトの名無しさん
07/05/27 00:29:43
もっと簡潔なやり方があるに違いない病だな
782:デフォルトの名無しさん
07/05/30 07:14:12
WinMainの記述はどこのフォルダのなんと言うファイルに書かれていますか?
783:デフォルトの名無しさん
07/05/30 07:42:55
>>782
君の心の中に・・・
784:デフォルトの名無しさん
07/05/30 09:22:51
appcore.cpp(96): // in non-running state until WinMain
appmodul.cpp(19): // export WinMain to force linkage to this module
appmodul.cpp(21): extern int AFXAPI AfxWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
appmodul.cpp(25): _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
appmodul.cpp(28): // call shared/exported WinMain
appmodul.cpp(29): return AfxWinMain(hInstance, hPrevInstance, lpCmdLine, nCmdShow);
appterm.cpp(27): // Standard cleanup called by WinMain and AfxAbort
makefile(402): $D\winmain.obj $D\barcore.obj $D\bartool.obj $D\bardlg.obj \
wincore.cpp(3553): // Standard init called by WinMain
winfrm.cpp(762): nCmdShow = pApp->m_nCmdShow; // use the parameter from WinMain
winmain.cpp(18): // Standard WinMain implementation
winmain.cpp(21): int AFXAPI AfxWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
alpha\mfc42.prf(961): ?AfxWinMain@@YAHPAUHINSTANCE__@@0PADH@Z
alpha\mfc42u.prf(761): ?AfxWinMain@@YAHPAUHINSTANCE__@@0PAGH@Z
intel\mfc42.def(1341): ?AfxWinMain@@YGHPAUHINSTANCE__@@0PADH@Z @ 1576 NONAME
intel\mfc42.prf(466): ?AfxWinMain@@YGHPAUHINSTANCE__@@0PADH@Z
intel\mfc42d.def(949): ?AfxWinMain@@YGHPAUHINSTANCE__@@0PADH@Z @ 1190 NONAME
intel\mfc42u.def(1334): ?AfxWinMain@@YGHPAUHINSTANCE__@@0PAGH@Z @ 1569 NONAME
intel\mfc42u.prf(321): ?AfxWinMain@@YGHPAUHINSTANCE__@@0PAGH@Z
intel\mfc42ud.def(946): ?AfxWinMain@@YGHPAUHINSTANCE__@@0PAGH@Z @ 1187 NONAME