VisualC++相談室 【7】

このエントリーをはてなブックマークに追加
952951:02/05/25 11:55
訂正

-----------------------------------------------

方法1.

ON_BOTTON(){
 while(){
//何かの計算をする

InvalidareRect(hdlg , NULL , FALSE);
UpdateWindow(hdlg);
 }
}

WM_PAINT:
  //その結果をグラフに書く
 break;


UpdateWindow で WM_PAINT を呼び出し処理する


-------------------------------------------------


方法2.

ON_BOTTON(){
 while(){
//何かの計算をする

hdc = GetDC(hdlg);
  //その結果をグラフに書く
ReleaseDC(hdlg , hdc);
 }
}


GetDC で直接描画

953デフォルトの名無しさん:02/05/25 18:32
>>951,952
ありがとうございます.
今方法2でやってみましたが,できませんでした.
計算中に,そのアプリを移動しようとしても移動ができず,再描画もしてくれませんでした.

方法2しか駄目なのでしょうか?

954950,953です:02/05/25 18:43
On_Button()は一回押したら,10分くらい計算し続けてるんです.
それと同時に線を書く.
つまりwhileで10分くらい居続けます.
ということなのですが.
955デフォルトの名無しさん:02/05/25 19:05
こんばんわ、調べてもわからなかったので
教えてもらえないでしょうか。
リストビューで複数のイメージを使用してるんですが
選択中のアイテムのイメージのインデックス
が知りたいんですけど(LVITTEMを使ってセットした時のiImage)
GetItemStateを使用したらいいとまではわかったのですが
うまく情報取得できません。
ret=GetItemState(index,LVIF_IMAGE);
と書いてるんですがretが常に2になってしまい
困ってます。
なにか根本的に間違ってますか?
初心者的質問ですがよろしくお願いします。
>955
LVIS_STATEIMAGEMASKでなくてはいけないかと思いますが。
957デフォルトの名無しさん:02/05/25 19:36
>>954
つーかスレッド作ったほうが楽だと思ふ・・・・・・・
958955:02/05/25 19:38
>>956
ありがとうございます。
そうも思ったんですが
ret=GetItemState(index,LVIS_STATEIMAGEMASK);
とするとretがすべて0になっちゃいましたので。。
ret=GetItemState(index,LVIS_STATEIMAGEMASK);
イメージのインデックス取得するのに
この文のどこがおかしいんでしょうか。
>958
GetItemの方でやってみるとかはダメかな?
MFCのその部分のソースも見てみるといいかも知れず。
960955:02/05/25 20:02
>>959
実は始めそれも調べたのですが
ぜんぜんわからなくて挫折してしまいました。
MSDNでは
「リスト ビュー アイテムの属性のすべてまたは一部を取得します。」
って解説されてるんですが今回の選択中のアイテムの
indexをもとに情報を取得したい場合
どうしたらいいんでしょうか。
定義がBOOL GetItem(LVITEM* pItem) const;
なので引数がひとつしかないので
正直ぜんぜんこの関数の使い方がわからなかったです。
GetItemStateとGetItemどちらもうまく使えてませんが
今回みたいなアイテムのインデックスから
イメージのインデックスを得る場合
どちらを使えばいいでしょうか。
>960
LVITEM構造体調べてくれ…てかそこら辺の説明はSDK使った事無いと
わからんかもw
猫でもわかる〜のサイトでも行ってお勉強してくださいな。
962951:02/05/25 20:13
>今方法2でやってみましたが,できませんでした.

マジで?
ループ中に PeekMessage , TranslateMessage , DispatchMessage でメッセージループを作ればいけるかも。

>計算中に,そのアプリを移動しようとしても移動ができず,再描画もしてくれませんでした.

移動なども行いたいならマルチスレッドの方が良いかも。
移動を頻繁に行うならパフォーマンス的にもマルチスレッドが有利

いずれにしろ計算中にボタンを押されると多重に実行される可能性があるのでボタンの有効無効の切り替えが必要
963教えてほしいです!:02/05/25 20:15
HTMLのことなんですけど、
ページを開くと他にも次々にページがでるようにしたいんですけど
どうやるかわかる人いますか?
いたらおしえてほしいです!お願いします☆
>>963
頭悪いなら氏ね。
965955:02/05/25 20:17
GetItemStateを使うのだとしたら
LVITEM構造体のstateメンバとstateMask
あたりだと思って昨日調べてたんですが
結局挫折してしまいました。
ずばりret=GetItemState(index,LVIS_STATEIMAGEMASK);
のあとretからイメージのインデックスを
取得するにはどういった文が必要なんですか?
もしくはやはりGetItem()でしょうか。。
966デフォルトの名無しさん:02/05/25 20:19
967いまいましいチビの女の子達:02/05/25 22:04
テンプレートを使ったライブラリを作りたいのですが
ヘッダとソースファイルの分割はどうすればいいのでしょうか。

VC++はexportをサポートしていないので
リンクエラーがでてしまいました。
VC++.NETを買えばよいのではないでしょうか。
969いまいましいチビの女の子達:02/05/25 22:17
↑.NETはexportあるんですか?
>>968-969
確か.NETにも無いと思ったけど。
971950,953,954です:02/05/25 22:39
>>949 >>957 >>962

スレッドってマルチスレッドのことだったんですね(^^A
質問一つのためにスレを立てて,糞スレ立てんなって言われちゃうじゃん!!
って思ってました〜!
やってみます!ありがとうございました!
>>971
> スレッドってマルチスレッドのことだったんですね(^^A
も、盲点だった!
君以外はみんなスレッド=マルチスレッドだと思って
このスレ見てたと思うよ・・・
973デフォルトの名無しさん:02/05/25 23:02
ご教授願お願いします。
リストボックスの一行ごとに複数の変数(Char)を表示しているのですが

VBでいう   Tab(30) ; name ; Tab(50) ; year

といったようにそれぞれの始まる場所を指定したいのです。
どうしてもやり方が見つからなく、今はムリヤリ
スペースを調整して表示しているのですが、きれいにまとまりません、
Tabに近いような命令はあるのでしょうか?
974デフォルトの名無しさん:02/05/25 23:27
>>973
sprintf( buf, "%d\t%d", name, year );
とかでは駄目ですか?
973
CListBox::SetTabStopsとLBS_USETABSTOPS
MSDN読もう・・・
976973:02/05/26 00:49
>974,975
ありがとうございます、そのあたりを確認して
また挑戦してみます。
977デフォルトの名無しさん:02/05/26 01:32
VC++.NETにはC++言語リファレンスの日本語ヘルプって付いてないんでしょうか?
>>955
iImageとStateImageは別物だよ。(GetItemStateで取れるのは
チェックボックスとか表示するのに使うやつ)
アイコンの方を調べるには、GetItemしてiImage見なくちゃダメ。
セットする時にLVITEM使ってるなら、同じ要領でできると思うがどうか。
979いまいましいチビの女の子達:02/05/26 05:51
>>970
マイクロソフトの怠慢ですね.

素直にテンプレートをやめて書き直します.
うう、面倒くさい.
980デフォルトの名無しさん:02/05/26 21:39
卒論のためにVC++でプログラムを組むことになりました。
学校でCの演習はやってましたけど、初歩的なことしか
やってないしC++はやったことないです。
最初に読むのにお勧めの書籍教えてください。
マニュアル
982デフォルトの名無しさん:02/05/26 22:10
>>980
MFCで組むなら林晴比古のVC++スーパービギナー編でも読んでみたら?
それでサパーリなら諦めなさい(w
983955:02/05/26 22:33
>>978
ありがとうございます。
お蔭様でGetItemの使い方もわかり、
無事目的のアイテムのイメージのインデックスの取得
に成功しました。
感謝してます。
みなさん、アドバイスありがとうございました。
>>982
レスありがとうございます。
でも、その人の本>>177-179
すごく不評なんですが大丈夫なんでしょうか?
また、なんで不評なんでしょうか?
長年の経験と勘でが投げ捨てろと言っている。
長年の経験と勘でが投げ捨てろと言っている。
長年の経験と勘でが投げ捨てろと言っている。
986955:02/05/27 08:52
982>>
私自身勉強中で参考になるかわかりませんが
その本自体は読んだことないですけど
その本の二巻(シニア編)はド忘れした時の辞書代わりになってます。
VCまったくやったことなくてC解るなら
山本信雄って人の書いた
「プログラミング学習シリーズ VisualC++」てのがいいと
思いますよ。
というか私はこれでした。
三巻構成で少々高くつきますがVC1からやるには
かなりよかったです。
1巻ではMFCよりAPIから入ってるのである程度仕組みが
理解できると思います。
2巻は、クラスの利用方法など、(C++やってないならいいかな
3巻がMFC全般。
上級の方からはどう思われるかわからないですけど
勉強中の身の私としてはかなり解りやすい本だと思いました。
参考までに。
>>985
経験と勘ですか
確かに推薦図書スレでも不評でした。

>>986
レスどうもです。
ほんとにVC何もわからないので
わかりやすい本がいいです。
とりあえず>>982>>986さんが薦めてくれたのを
立ち読みしてみようと思います。
988デフォルトの名無しさん:02/05/27 14:27
次スレたてないの?
終わりで良いじゃん
990デフォルトの名無しさん:02/05/27 14:53
>>989
終わりかよ!!
だって必要ないじゃん
992デフォルトの名無しさん:02/05/27 14:58
>>984
今これのビギナー編でVC6.0の勉強中です。
内容は文字通り「VC++6.0」の使い方で
ウィザード使うとこういうことが出来ますよって感じ。
この本読んでプログラムが出来るようにはならないと思うけど
DOS窓しか開けなくて詰まってた私にはちょうど良かったかなとおもう。

でもこれ買った後、友達に>986のやつ薦められました。
スーパービギナー編=
結論を再確認する。「投げ捨てろ」
ビギナー編=
開発環境操作本。これを見ながら勉強すれば、
2chへの「わかりません」系マルチポストを防止できる。
シニア編=
基本的なコントロールの使用法を、それなりにまとめてある。
これを見ながら勉強すれば、
2chへの「できません」系マルチポストを防止できる。
このスレは教えて君の隔離に丁度いいと思う。
あと、まともな質問も結構ある訳だし、次スレ建ててもいいと思うよ。

でも俺はビビりなので自分では建てない罠。
漏れは立てすぎ
996
262 名前:いさましいおsageの女の子 [sage] 投稿日:02/05/27 20:31
ごめんね ++が付かなかったよ。

どうやるの?
http://pc.2ch.net/test/read.cgi/tech/1022499000/
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。