5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

■ VisualC++(MFC限定)相談室 MFC6.dll■

1 :MFC:02/12/11 20:49
■ VisualC++(MFC限定)相談室 5■
http://pc3.2ch.net/test/read.cgi/tech/1028553308/

2 :デフォルトの名無しさん:02/12/11 20:50
2

3 :デフォルトの名無しさん:02/12/11 20:57
ld ./mfc6.dll

?

4 :デフォルトの名無しさん:02/12/11 21:27
このスレは冗談で作られたネタスレです。

すでに削除依頼済ですので、今後は書き込まないようにお願いします。

本物のスレは↓こちら。

http://pc3.2ch.net/test/read.cgi/tech/1028553308/
■ VisualC++(MFC限定)相談室 6■

5 :デフォルトの名無しさん:02/12/11 21:31
>>4
次スレってことでしょ?

6 :デフォルトの名無しさん:02/12/11 21:35
スレタイがダサい。削除依頼行きだね。

7 ::02/12/11 22:04
皆様申し訳ございません。
目立ちたくてスレたてますた。
今後このようなことがないよう致します。

8 :デフォルトの名無しさん:02/12/11 22:09
8

9 :デフォルトの名無しさん:02/12/11 22:09
つーか俺が>>1でほとんどのMFC過去スレも俺が立ててきたんだけど
そろそろちょっと変えてみようかなーと思っただけで・・・

10 :デフォルトの名無しさん:02/12/11 22:11
まあ、本質が変わるわけでなし。

11 :デフォルトの名無しさん:02/12/11 22:22
>>10
名前変えると荒らされるぞ。どっかみたいに。

12 :デフォルトの名無しさん:02/12/11 22:24
このスレが生き続けてくれるということは、正直、うれしいというかほっとする
というか・・・

13 :デフォルトの名無しさん:02/12/11 22:24
まだまだ、需要があるんだなぁと・・・

14 :デフォルトの名無しさん:02/12/13 00:37
ウィンドウを2列に分けて、左の列は2行、右の列は1行
に分けて、それぞれにビューを表示したいのですが、
以下のようにすると最初に表示した段階で左の列が潰れてしまいます
左の列幅と右の列幅を3:1で最初は表示したいのですが
どう修正すればいいか教えてもらえないでしょうか

CSplitterWnd m_split;
CSplitterWnd m_subSplit;

BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
 CRect rect;
 GetClientRect(rect);

 m_split.CreateStatic(this, 1, 2);
 m_subSplit.CreateStatic(&m_split, 2, 1, WS_CHILD | WS_VISIBLE
   | WS_BORDER, m_split.IdFromRowCol(0, 0));

 m_subSplit.CreateView(0, 0, RUNTIME_CLASS(CView1),
   CSize(3*rect.Width()/4, rect.Height()/2), pContext);
 m_subSplit.CreateView(1, 0, RUNTIME_CLASS(CView2),
   CSize(3*rect.Width()/4, rect.Height()/2), pContext);
 m_split.CreateView(0, 1, RUNTIME_CLASS(CView3),
   CSize(1*rect.Width()/4, rect.Height()), pContext);

 return TRUE;
}

15 :デフォルトの名無しさん:02/12/13 00:52
m_split.SetColumnInfo(0, 全体の75%, 適当)

でどうよ。

16 :デフォルトの名無しさん:02/12/13 00:53
質問です。
ファイルからビットマップを読み込んで
ダイアログボックスのピクチャボックスで表示したいのですが、
ピクチャボックスのサイズがわからずフォームにあふれてしまいます。
ピクチャボックスのサイズってどうやったらわかるのでしょうか?
よろしくお願いします。

17 :デフォルトの名無しさん:02/12/13 01:14
>>16
GetWindowRect

18 :16:02/12/13 01:23
>>17さん
ありがとうございました。

19 :デフォルトの名無しさん:02/12/13 01:55
>>15
出来ました
ありがとうございました

20 :デフォルトの名無しさん:02/12/13 13:17
スプリッタウィンドウで
複数のビューを表示するときに
入力するキーによって
受け取るビューを変えたいのですが
どうしたらいいでしょうか

たとえば数字キーなら左のビュー
エンターキーなら右のビューといった感じです

21 :デフォルトの名無しさん:02/12/13 16:28
>>20
フォーカスがあるビューがメッセージ受け取るから、
両方でWM_KEYDOWNとか受け取ってキーによって振り分けりゃいいんじゃない?

例えば右のビューにフォーカスがあって数字キーが押された場合、
左のビューへSendMessageするとか。

22 :20:02/12/13 17:13
>>21
他のビューのSendMessageを起動するには
どのように記述すればいいのでしょうか
CView1とCView2があった場合
CView1のOnKeyDown内から
CView2のSendMessageを呼び出すことができません


23 :デフォルトの名無しさん:02/12/13 17:28
>>22
他のビューへのポインタを取得してSendMessageすりゃいいじゃん。

24 :デフォルトの名無しさん:02/12/13 17:29
WM_KEYDOWN受け取るのもキーによって振り分けるのも
CMainFrameでやった方が楽では?

25 :デフォルトの名無しさん:02/12/13 17:32
CMainFrameで受け取れるならどうぞ。

26 :デフォルトの名無しさん:02/12/13 17:32
あ、WM_KEYDOWNをそのままSendするのか。
>>24は無し。聞かなかったことにして。

27 :デフォルトの名無しさん:02/12/13 17:34
そして他のビューへのポインタの取得方法がわからんとか言われる罠
CDocument::GetNextView()とか知ってんのかな……

28 :20:02/12/13 17:41
>>27
有難うございます
その通りでした

GetDocumentとかと同じでGetViewとかあるのかと思って
調べてたらCRichEditViewのだったりするしで
悩んでるところでした

29 :20:02/12/13 17:51
>>27
すいません。また問題が出てきました。
GetNextView でゲトしたビューがどのビューなのかは
どのようにすればわかるのでしょうか。

すべてのビューにそれぞれが区別できる名前のようなものを
返す関数を作っといて、GetNextViewで得るごとにそれを呼び出して
調べていくという方法を考えているのですが、
もっと手っ取り早い方法があるのでしょうか

30 :デフォルトの名無しさん:02/12/13 18:17
GetRuntimeClass を知らないのだろうか

31 :デフォルトの名無しさん:02/12/13 18:25
MSDNライブラリを調べようという気はないのだろうか

32 :デフォルトの名無しさん:02/12/13 21:23
ダイアログにピクチャボックスがあります。
そのピクチャボックスの中をOpenGLを使って描画しているのですが
アニメーションするとちらついてしまいます。
このチラツキをなくすにはどうすればよいでしょうか?

33 :デフォルトの名無しさん:02/12/13 21:47
Titleバーなしのポップアップウインドウを作ったのですが、
これをマウスで移動できるようにする方法ってあるでしょうか?
左右の枠の部分をつかんで移動できるようにしたいのです。
ご存知の方教えてください


34 :デフォルトの名無しさん:02/12/13 22:00
>>32
OpenGLはよくわからんけど、InvalidateRectとかその辺が役に立つかもしれない。

>>33
WM_LBUTTONDOWN捕まえればいいと思うけど。

35 :デフォルトの名無しさん:02/12/13 22:57
>>33
OnNcHitTestでおまじない唱える

36 :29:02/12/14 01:20
>>30
知りませんでした
どうもありがとうございます

>>31
MSDNライブラリ調べてますよ
ただ他人のソース読んでて知らない関数やら出てきたときは
役に立つんですが、このような動きをする関数を知りたいってときに
うまく調べられません。検索時にキーワードとなるようなものを
まだあまり知らないので

37 :デフォルトの名無しさん:02/12/14 14:04
CHtmlViewのWebBrowserって右クリックするとIEと同じ右クリックメニューが出ますが
これを右クリックしても出ないようにする方法ってありますか?
あとHTML表示用のコントロールってないんですかね?

38 :デフォルトの名無しさん:02/12/14 14:13
http://japan.pinkserver.com/under/index.html
勝手に他人のサイトを直リンク!!
「法的根拠はない!!」
「だから直リンしてます」
ハァ?
ネチケットも守れない痛い厨のサイト晒し

39 :デフォルトの名無しさん:02/12/14 14:33
pinkserverってアダルトサイトじゃなかったっけ? 宣伝か?

40 :デフォルトの名無しさん:02/12/14 14:42
>>37
http://www.codeguru.com/ieprogram/index.shtml
ここの
How to Modify/Remove Right-Click Menu in IE WebBrowser Control
って記事参照。

41 :デフォルトの名無しさん:02/12/14 15:05
>>38
ネチケットどころか常識的な事ですら理解してないのが一杯いる2chで言われても…

42 :デフォルトの名無しさん:02/12/14 20:41
ダイアログで
  DragAcceptFiles(TRUE)を呼ぶ のと WS_EX_ACCEPTFILES をつける
のはどう違うんですかね?

43 :37:02/12/14 23:13
>>40
うぉ!サンクス!
ただisThisOurBrowser()うんたらのとこがよくわからなかった・・・
別にこれでいいと思うんだけどどうかな。
-------------------------------------------------------
BOOL CHtmlTestView::PreTranslateMessage(MSG* pMsg)
{
if ( (WM_RBUTTONDOWN == pMsg->message) ||
(WM_RBUTTONDBLCLK == pMsg->message) ){
return TRUE;
}

return CHtmlView::PreTranslateMessage(pMsg);
}
-------------------------------------------------------


44 :デフォルトの名無しさん:02/12/15 01:50
>>43
isThisOurBrowser()の上の説明を読むと、ネストされたフレームの場合を考慮してるみたいね。
<FRAMESET>とかのことじゃないかな?

45 :デフォルトの名無しさん:02/12/15 11:27
前スレが冬厨により上げられたのでage


46 :デフォルトの名無しさん:02/12/15 14:17
>45

うるせえ!冬坊が!

47 :デフォルトの名無しさん:02/12/15 15:59
すみません
VC6.0でSDI環境で作業したいのですが
手段はないでしょうか


48 :デフォルトの名無しさん:02/12/15 16:49
nmakeと、自分の好きなSDIなエディタ使う

49 :デフォルトの名無しさん:02/12/15 16:55
別プロセスでコンソールアプリが動いていて
そいつがあるファイルを出力するまで
もう一方のプロセスで「しばらくお待ちください」と書かれた
ダイアログを表示しておいて、ファイルが出力されれば
それを自動的に消したいのですがどのようにしたらいいのでしょうか。

しばらくお待ちくださいとだけ書いてOKボタンとキャンセルボタンを取り去った
ダイアログをCDialogの派生でCWaitDlgとして作って
表示するのはDoModal()みたいだったので、DoModal()中に
以下のようにして一定時間ごとにファイルが出来てるかチェック
して、できてればダイアログを閉じようとしてるんですが、
呼び出してもダイアログが表示されません。
たぶんDoModal()に書いてることがおかしいんだとは思ってるんですが、
どうすればいいのかわかりません。

int CWaitDlg::DoModal()
{
while(1){
if( ::GetFileAttributes(ファイル名) != 0xFFFFFFFF ){
remove(ファイル名);
break;
}
Sleep(1000);
}

return 0;
}

50 :デフォルトの名無しさん:02/12/15 17:15
>>49
DoModalを抜けてからじゃないとダイアログ表示されないよ。
ダイアログを表示してから何か処理したかったらWM_INITDIALOGのハンドラに書こう。

あまり上手な設計とは思えんが…。

51 :デフォルトの名無しさん:02/12/15 17:25
>>49
思わず笑ってしまった。
プログラムは練習のために書いてんだよな?

52 :デフォルトの名無しさん:02/12/15 17:32
>>50
下のようにしてみて
DoModal()を呼び出してみても
止まってる感じはするんですが
ダイアログが表示してくれません。

BOOL CWaitDlg::OnInitDialog()
{
CDialog::OnInitDialog();

while(1){
if( FileExist("visu_finish") ){
remove("visu_finish");
break;
}
Sleep(1000);
}
EndDialog(0);

return TRUE;
}

>>51
ヽ(`Д´)ノウワァァァァン練習のためじゃないんだよぅ
でも人に渡したりするようなものじゃないです
自分が使うためのソフトです

53 :デフォルトの名無しさん:02/12/15 17:34
ごめんなさいさっきと変わりました
#define FileExist(s) ::GetFileAttributes(s) != 0xFFFFFFFF
こういうことです

54 :デフォルトの名無しさん:02/12/15 20:55
>>52
お前馬鹿だろ…
OnInitDialogで無限ループ組んでていつWM_PAINTとか受け取るつもりだ?
ワーカースレッド作れよ。


55 :52:02/12/16 01:02
>>54
ダイアログ表示中はユーザに何もしてほしくなくて
スレッドみたいに並列処理のイメージをもっていなかったので
ダイアログ表示、ファイルチェック、ダイアログ消去の順番で
出来ると思ってました。
スレッドにしたらできました。ありがとうございます

56 :デフォルトの名無しさん:02/12/16 15:55
C++.netでMFC6を使用したプログラムの動作について質問です。
Windows2000+ServicePack2ではきちんと動くのですが
Windows2000のノーマルだと動作があやしくなってしまいます。
具体的には
リストボックスがパチパチ点滅してしまい、選択できない。
どっかで暴走してるように重くなる。
という現象がおきています。
これはどのようなことが考えられますでしょうか?


57 :デフォルトの名無しさん:02/12/16 17:36
>>56
サービスパックで修正されたバグ

58 :デフォルトの名無しさん:02/12/16 20:44

なるほどServicePackのバグということで解決と思ったのですが、
windows2000のノーマルでも動いてしまいました・・・(TT)

またいままでとはまったく別のマシン
win2000+ServicePack2
XPノーマル
でも動作できませんでした。
これにはどのような原因が考えられますでしょうか?
もちろんともにVS.netは入れていません

59 :デフォルトの名無しさん:02/12/16 22:01
MFCのスタティックライブラリを使ってもそうなる?

60 :デフォルトの名無しさん:02/12/16 22:08
>>58
> これにはどのような原因が考えられますでしょうか?

多分、貴方のバグ。

61 :デフォルトの名無しさん:02/12/16 22:10
>リストボックスがパチパチ点滅してしまい、選択できない。
ふつうにリストボックス貼り付けただけのダイアログでもそうなりますか?

>どっかで暴走してるように重くなる。
これは自分のバグでしょ。

62 :デフォルトの名無しさん:02/12/16 23:09
点滅ってのは再描画のことだろうな。
どっかで無限ループしてるぽい。だから入力も受け付けないんだろう<選択できない。


63 :デフォルトの名無しさん:02/12/17 00:38
IEコンポーネント使わずにローカルにあるHTMLファイルを解析して
任意の位置に表示したいんだけど、やっぱ自作するしかない?
その場合はリッチテキストコントロールを継承して作るのかな。
どこかのサイトで、そういった自作クラス公開してないかな・・・
結構需要あるように思うんだけど。

64 :デフォルトの名無しさん:02/12/17 00:40
www.mozilla.orgにありますよ

65 :デフォルトの名無しさん:02/12/17 00:46
>>63て何かMFCと関係あったのかな。独り言なら他に逝って欲しいな。

66 :63:02/12/17 01:10
>>64
どのクラスがそれに当たるのか簡単にわかるもんかな。
とりあえずソースダウンロードしてみようっと。

67 :デフォルトの名無しさん:02/12/17 01:29
VC.netってどうなの?


68 :デフォルトの名無しさん:02/12/17 02:04
ぼちぼちでんな。

69 :デフォルトの名無しさん:02/12/17 02:09
OpenSSLをラッピングしたようなクラス
転がってませんか?
www.openssl.org

70 :デフォルトの名無しさん:02/12/17 11:23
>>69
調べてないけどCodeGuruにないか?

71 :MFC使ってるとかの判定:02/12/17 17:32
.cpp内でプロジェクトが「MFCを使っている」・「MFCのstaticリンク」・「MFCの共有DLL使用」の
判定にはどのようにすればよいのでしょうか?

MFCのDLL使用の場合は
#ifdef _AFXDLL
で、できるようですけど。
よろしくお願いします。

72 :71:02/12/17 17:33
「MFCを使っている」は「MFCを使っていない」の間違いです。

73 :デフォルトの名無しさん:02/12/17 18:41
*.cppじゃムリだろ…
*.dspファイルに書かれていることだし。
何か間違った認識をしているような気がしてならない。


74 :71:02/12/17 19:48
>>73
やりたいのはプログラムのソースを使いまわしたいときに
#include "stdafx.h"
がいるときといらないときがあるためです。
アップウィザードでMFCのプロジェクトを作った場合 stdafx.h が必要ですけど(pchの設定そのままの時)
そうでない場合や他のコンパイラを使用する場合には stdafx.h は不要ですので、

#ifdef _AFX
#include "stdafx.h"
#endif

こんな感じで使いたかったんですけど。(ダミーの stdafx.h 作ったほうがはやい?)

75 :デフォルトの名無しさん:02/12/17 19:51
>>74
おいおいstdafx.hはMFCを使っているかどうかは関係ないぞ。
MFCを使わないWin32アプリでも使う。

76 :デフォルトの名無しさん:02/12/17 20:12
>>71
_MT
_DLL
_AFX
これで大抵いける。
だが、これと>>74のpchの話のつながりが分からないぞっと。


77 :デフォルトの名無しさん:02/12/17 20:39
>>74
プリコンパイル済みヘッダって知ってますか(藁

78 :71:02/12/17 20:41
レスどーもです

>>75
スマソ、他のコンパイラを使用する場合とかです。

>>76
もう帰っちゃったので明日試してみます。でも、_AFXは AfxVer.h で定義されていて
stdafx.hをインクルードしたあとでなければ判断できないのでは

それとも自分でコンパイルオプション(/D)を指定したほうがいいんでしょうか?

79 :デフォルトの名無しさん:02/12/17 20:47
>>77
すんません、どうゆうつっこみかよくわからないんで説明してください。

80 :デフォルトの名無しさん:02/12/17 21:00
なんか質問の主旨が変わってきてる。
最初はMFC不使用/使用/DLLを区別したいとあったはずだが
いつのまにかプリコンパイル済みヘッダの使用/不使用の話に。
とりあえずMFCスレとは関係ないということはわかったが・・・
コンパイラを変えるならVC固有のマクロに頼ること自体おかしいと思う。

81 :71:02/12/17 21:32
>>80
やりたいことは>>74での stdafx.h のインクルードをする・しないの判断です。
VCのアップウィザードでプロジェクトを作るとプリコンパイルドヘッダーの設定で stdafx.h が
指定されます。そのため .cpp に #include "stdafx.h" が必要になります。
で、この .cpp(1つぐらい) を他のプロジェクトでも使用するとき、そのプロジェクトが
BC++Builderとかの場合は、ふつう #include "stdafx.h" は、いりませんし、ありません。

このようにVCプロジェクトとBCBプロジェクトが.cppを共有しているような場合に
stdafx.h のインクルードをする・しないの判断ができるのかしりたかったのです。

>最初はMFC不使用/使用/DLL
これはVCの時はほとんどMFCばかり使ってるのと、アップウィザードでMFC、DLLを使用に
するとコンパイルオプションで /D _AFXDLL が指定されるのがわかったので、ほかの場合にも
なにか定義されているのかもと思ったからです。

スレ違いになってきたので、このことについてはこれまでにします。

82 :すごくしょしんしゃ:02/12/18 18:45
MFCを使っています。

マイコンピュータのようなものを作りたいのですが、どういう風に作ったらいいかわかりません。
具体的には、今リストコントロールを用いてそれらしいものを作っていたつもりだったのですが、
「大きいアイコン」や「小さいアイコン」の表示の時にマイコンピュータのように、マウスでアイコンを動かして規則的でない任意の位置に動かせません。ドラッグ状態にもならんです。

それと、ドラッグについて質問です。外からドラッグしてこられたものが、ドロップされた、というのは

OnDropFiles(HDROP hDropInfo)

を利用することでなんとか処理することができましたが、逆に、自分の作っているアプリから、(デスクトップや他のアプリケーションなどに)外にドラッグしてドロップする、という方法がわかりません。

方法を知ってらっしゃる方がいましたら、お願いします。。

83 :デフォルトの名無しさん:02/12/18 19:00
>>82
>リストビュー
作成時にLVS_AUTOARRANGEを外す。

>ドラッグ
COleDropSourceとかその辺調べてみな。

84 :すごくしょしんしゃ:02/12/18 21:08
>>83

どうも、ご親切にありがとうございます。
キーワードを頼りにもう一度調べてみます!!

85 :すごくしょしんしゃ:02/12/18 21:50
>>83

void C***List::PreSubclassWindow()
{
// TODO: この位置に固有の処理を追加するか、または基本クラスを呼び出してください
this->ModifyStyle(LVS_AUTOARRANGE,NULL);
CListCtrl::PreSubclassWindow();
}

のようにしてLVS_AUTOARRANGEを削除したつもりなんですが、どうも変化がないです。
ここで他のスタイル変更などは試してうまくいっているので、恐らく変更のタイミングじゃないと思うんですが・・・


86 :デフォルトの名無しさん:02/12/18 22:35
>>85
アイテムのD&Dは自前で動かしてたような…。
http://www.codeguru.com/listview/DragDropListCtrl.html

87 :忘れた……:02/12/18 22:37
ちょっと板違いなきもしますがプラットフォームがMFCなので。。

LANにぶら下がっているマシンの自分のアドレスが欲しいのですが欲しいのはネットワークアドレスじゃなく
グローバルアドレス。gethostname→getbyname(だったかな?)でとるとネットワークアドレスになってしまいます。
この状態でも確認くんなどにつなぎに行くとちゃんとGIPがみれますがこれが欲しい。
この場合HTTPでつなぎに行ったときにルータのNATやらで与えられるIPだからアプリからはどうしようもないのかな。
どうなんでしょ。この変詳しい人いますか?

88 :デフォルトの名無しさん:02/12/18 22:41
>この状態でも確認くんなどにつなぎに行くとちゃんとGIPがみれますがこれが欲しい。
そりゃゲートウェイやルータのIPアドレスでしょ?

89 :デフォルトの名無しさん:02/12/18 22:42
>>87
こんなんでましたけど。
http://forums.belution.com/ja/vc/000/065/62s.shtml

90 :すごくしょしんしゃ:02/12/18 22:47
>>86

半透明になってアイコンがドラックされた状態になってマウスカーソルとともに動いていくっ
っていう動くではなく、
>>85で言いたいのは、自動整列になっていないデスクトップやマイコンピュータのように、
自由にアイコンを配置できるようなことです。

91 :デフォルトの名無しさん:02/12/18 22:52
>>82
抽象的すぎてよく分からん…

92 :デフォルトの名無しさん:02/12/18 22:54
>>85
PreCreateWindowじゃなくて?
PreSubclassWindowが呼ばれたときってまだCreateは呼ばれてないと思うけど…。

93 :すごくしょしんしゃ:02/12/18 23:04
>>92
ダイアログにVCのエディタで作った(配置した?)リストコントロールなんですけど・・。


94 :デフォルトの名無しさん:02/12/18 23:08
LVS_* の変更って、SetExtendedStyle() じゃなかった?

95 :デフォルトの名無しさん:02/12/18 23:11
どこまで実装されているかわからないから答えるほうも大変だな…

96 :デフォルトの名無しさん:02/12/18 23:12
>>94
それは LVS_EX_* の話よん

97 :デフォルトの名無しさん:02/12/18 23:15
>>87
> 欲しいのはネットワークアドレスじゃなくグローバルアドレス。

最近は、こういう言い方するのか ?

98 :デフォルトの名無しさん:02/12/18 23:51
分かってない奴は昔からそういう言い方をする

99 :デフォルトの名無しさん:02/12/19 00:16
だからMFC使ってるからってだけでこのスレで質問するのはやめた方がいいって。
ネットワークプログラミングスレあるんだから。
自分の質問の要点はどこなのか冷静に切り分けていこうや。

>>85
そのソースみたところリストコントロールの派生クラスなんだから>>92の通りだ。
つーかスタイル変更したいだけならOnInitDialogあたりで
m_list.ModifyStyle(・・・);  // m_listはCListCtrl
でいいじゃないか。

100 :デフォルトの名無しさん:02/12/19 00:21
>>88
そうだよね。

>>89
参考になります。ありがとう

>>97-99
うわっ、役にたたねぇ〜。。


101 :デフォルトの名無しさん:02/12/19 00:34
はぁ・・・こいつは今後またここでMFCと関係ない質問するよ・・・
>>87で「板違い(スレ違いの間違いだろうな)なきもしますが」と
自覚してるのかと思いきや、ちょっと指摘されたらこの態度かよ・・・

102 :デフォルトの名無しさん:02/12/19 00:51
>101
いいから消えろよ。テイノウ。
すこしは役に立つこと書けや。
スレ違いの間違い?ばかオマエ?
板違いのつもりで書いたんだよ。とっとと逝けや

103 :デフォルトの名無しさん:02/12/19 00:53
>>102
( ´,_ゝ`) 煽り・叩きは厨房板へどうぞ。

104 :デフォルトの名無しさん:02/12/19 00:59
(´-`)。oO( 本当に板違いだったというオチか…<厨房板へ )

105 :デフォルトの名無しさん:02/12/19 01:05
まだ、VC6を使ってるものですけど、.netvcの新mfc(mfc70?)では、
Office2000や.netみたいなツールバー(Rebarっぽいツールバーバンドでのリサイズ&
フローティング&ツ−ルバーの自動サイズ変更)はサポートされてるんでしょうか?

106 :デフォルトの名無しさん:02/12/19 10:13
>103

>104

うっさい、ハゲ

107 :デフォルトの名無しさん:02/12/19 11:10
>>105
VC6でも実現できると思いますが。

108 :デフォルトの名無しさん:02/12/19 11:13
>>106
いいから消えろよ。テイノウ。
少しは役に立つこと書けや。


109 :105:02/12/19 14:51
>>107
VC6だとやっぱり、CToolberにツールバーバンドでのリサイズ&
ツ−ルバーの自動サイズ変更の処理をオーバーライズさせるですよね。
(Rebar使うとフローティングにならなかった様な気がするので・・・)

110 :デフォルトの名無しさん:02/12/19 15:54
ビットマップの再描画の方法おしえてください
6.0です

111 :デフォルトの名無しさん:02/12/19 16:16
読み直しゃいいんでない?

112 :デフォルトの名無しさん:02/12/19 17:22
>>110
まったく状況がわからん。
質問するならもっと状況を説明しろよ。

113 :デフォルトの名無しさん:02/12/19 17:53
悪い質問の仕方の見本だな。

114 :デフォルトの名無しさん:02/12/19 18:02
>>110は単発スレまで立っているので答える価値なしです

115 :デフォルトの名無しさん:02/12/19 18:07
VC++6.0SP5 & Win2000です。
サイズ可変ダイアログでタブコントロールがリサイズ時にちらつくのは何故でしょう?
同じダイアログに貼り付けたツリーコントロールはリサイズしても全くちらつきません。



116 :デフォルトの名無しさん:02/12/19 18:31
>>115
再描画してるからじゃないの?

117 :115:02/12/19 20:01
>>116
ですよねぇ。
ツリーコントロールがちらつかないのは内部でちらつかないように処理してるのかな?

ちなみにCWnd::MoveWindow()でリサイズしてます。
bRepaintをFALSEにするとちらつかないけど再描画もされない…(当たり前か)。

118 :デフォルトの名無しさん:02/12/19 23:45
>>117
WM_ERASEBKGNDとか

119 :107:02/12/20 03:24
>>109
これなんかどうよ。
ttp://www.codeproject.com/docking/tearoffrebars.asp

120 :109:02/12/20 10:04
>>119
おおー、なるほどReBarのほうをオーバーライズするんだ。
うん?フローティング時のSIZE_DYNAMICは効かなくなるのか?
早速TearoffReBarを移植してみよっと!♪
本当に助かります。ありがとうございます。

121 :デフォルトの名無しさん:02/12/20 12:40
オーバーライズ…なんか(・∀・)カコイイ!

122 :デフォルトの名無しさん:02/12/20 15:14
複数形だな

聞 い た こ と な い け ど

123 :デフォルトの名無しさん:02/12/20 17:58
>>122
三単現だろう。
本人とVC++以外の第三者がオーバーライドするのだ。
コワー。

124 :デフォルトの名無しさん:02/12/20 19:19
>108


謝れとは言いませんがこちらもちょっと大人気ないのですが
ムカついたので友達のハッカーに頼んであなたの個人情報を
探してもらうことにしました。あ、もう遅いですよ。
もうすでに友達解析始めちゃってますから・・・(^^;
ちなみにこれは自慢じゃないんですがその友達は日本でも
5の指に入るくらいの凄腕のハッカーです。
この前彼の家に遊びに行ったらものの5分で他人の個人情報を
抜き取っていました。
彼にとってそれくらい赤子の指をひねるくらいの行いなんですよね(爆)
これであなたもいっかんの終わりってやつですね(^^;
まあせいぜい後悔してくださいね。
それからもう二度と荒らしはしないこと(その友達は荒らしが大嫌いらしいです。
荒らしを見つけたら即解析に入るみたいです。(^^;)
それでは、う〜ん二日後くらいかな?また例のところに来てくださいね。
あなたの住所本名住所その他もろもろのせておきますんで(笑)
あ、警察とかに言ったって無駄ですよ。
あなたは荒らし(犯罪)なんだから通報したところで捕まるのは アナタです
友達は掲示板のログを自在に操ることができるんです。
と、いうことでbye♪(^O^)/~~

125 :デフォルトの名無しさん:02/12/20 19:21
>124
漏れもハックしてくれ。頼む。


126 :デフォルトの名無しさん:02/12/20 20:08
なつかしいコピペだな
最近増えてるけど、リバイバルブーム?

127 :デフォルトの名無しさん:02/12/20 23:26
MFCのCReBarで使うことのできるメニューバーの
作り方をご存知の方いませんか?
codeguruやcodeproject探したが見つかりませんでした

128 :デフォルトの名無しさん:02/12/21 00:53
>>127
codeguruのサンプルをちょっとだけ改造すればできるよ

129 :デフォルトの名無しさん:02/12/21 01:55
>>128
codeguruを見てみましたが、見当がつきませんでした。
何かヒントをいただけないでしょうか。
よろしくお願いします。

130 :デフォルトの名無しさん:02/12/21 02:41
>>129
猫でも分かる〜に書いてあるよ。

131 :デフォルトの名無しさん:02/12/21 03:13
>>129
ホントか?
http://www.codeguru.com/menu/index.shtml
ココ見て分からんようなら他さがせ。

132 :デフォルトの名無しさん:02/12/21 15:36
nafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) はすでに LIBCMTD.lib(new.obj) で定義されています
nafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) はすでに LIBCMTD.lib(dbgdel.obj) で定義されています
Debug/mm2080.exe : fatal error LNK1169: 1 つ以上の複数回定義されているシンボルが見つかりました

このようなエラーがたびたび出てくるんですが解決方法は
ttp://hornet-web.hp.infoseek.co.jp/tips/tips.html#10
こちらで正解なんでしょうか?
一度ワークスペースからファイルを外して、再度構築したら直ってしまったりと、
ちょっとよくわかりません。

133 :デフォルトの名無しさん:02/12/21 18:25
JavaのGUIアプリを移植したいです
mainで常に走っているスレッドがあります
そのスレッドはどこで生成すればよいのでしょうか?
InitInstance()でしょうか?
またはmainの内容を
InitInstance()に書けばよいのでしょうか?

あと,キー入力を
そのスレッドに渡したいのですが
どのように実装すべきでしょうか?

MFCはイベントドリブンとききました
上のようなことは不可能でしょうか?



134 :デフォルトの名無しさん:02/12/21 18:57
>>133
Javaにできることだったら、多少めんどくさくなろうともなんでもできる。

詳しいことがわからないから断言はできないけど・・・

>スレッド
InitInstanceで多分大丈夫。InitInstance中でもいろいろな
処理がWizardによって追加されてるので、前後関係をよくみながら。

>キー
やり方はいろいろあると思うが、スレッド中でメッセージループ作って、
PostThreadMessageで投げるとか

135 :デフォルトの名無しさん:02/12/21 20:27
プッシュボタンを「押しっぱなし」というのはどうやって見るんでしょうか?
ClassWizardでメッセージマップを開いても「クリック」と「ダブルクリック」の
イベントしか出てこないし、「クリック」だと離した後に起こるイベントですし。


136 :135:02/12/21 20:37
えーと、もしかして CButtonを派生させてクラスを作って
そのクラスで PreTranslateMessageをオーバーライドして
WM_KEYDOWNとか捕まえて処理する、んでしょうか?


137 :135:02/12/21 20:46
あぁ・・・WM_KEYDOWNじゃないですよね。
少しもちつきます。

138 :135:02/12/21 20:51
一人で勝手にすみません。
PreTranslateMessageじゃなくて、CButtonを派生させたクラスの
WM_LBUTTONDOWNやらWM_LBUTTONUPでやるっぽいすね。

139 :135:02/12/21 21:31
そしてそれを、ボタンを配置してる親ウィンドウに
どうやって押されてる/離された を通知してイベントを起こすのかが、
今の悩みなわけですが・・・教えていただけませんでしょうか。

140 :デフォルトの名無しさん:02/12/21 23:00
なんか適当なメッセージを定義して、
親ウィンドウにSendMessageしてやったらいいんでないかね。

141 :135:02/12/21 23:29
>>140 おーやっぱそうですか。
実は SendMessageは今までに何度か使おうとして
挫折してたから、今いろいろ使い方を調べてるとこです。

142 :デフォルトの名無しさん:02/12/21 23:37

もうちょっとでクリスマス。。★彡
パートナーは見つかりました?(o^.^o)

http://petitmomo.com/mm/
ここがちょっぴりエッチ系のめぐが運営している出会いサイトです。
もしよかったら使ってみて、、、
ヨロシクです。

めぐ(^o^)-☆


143 :135:02/12/21 23:57
ヽ(´∇`)ノウワァァァイできたー
はじめてSendMessageつかえたよー


144 :デフォルトの名無しさん:02/12/22 01:11
プログラム内でユーザー定義メッセージ使う場合はWM_APPより大きな値を使おう。
#define XXXX (WM_APP+1)
とか。

145 :デフォルトの名無しさん:02/12/22 01:18
WM_APPとWM_USERの使い分けは、
前者はプロセス間、後者はプロセス内で使うといいかなー、
とか思ってたけど違うのか?

146 :デフォルトの名無しさん:02/12/22 01:22
WM_USER through 0x7FFF Integer messages for use by private window classes.
WM_APP through 0xBFFF Messages available for use by applications.
らしい。

147 :デフォルトの名無しさん:02/12/22 01:25
漏れは基本的にSDKプログラマだからSendMessageは日常茶飯事なんだが
MFCプログラマだとやっぱり>>141みたいなかんじなのかな?
(悪い意味じゃなくてね)

148 :デフォルトの名無しさん:02/12/22 01:29
なんで>>141がMFCプログラマの代表であるかのように受け取ったのか問いたい

149 :デフォルトの名無しさん:02/12/22 01:46
むしろ>>141はMFCの日本代表

150 :デフォルトの名無しさん:02/12/22 02:31
>>147
俺はSDKほとんどつかったことないけどSendMessageはよく使うぞ。
皆がみんな「わかんない」だったらそういう印象受けるけど、
分かってないのは質問者だけっしょ?w

151 :きよみ:02/12/22 03:07
YESかNOかでお答えください。

152 :デフォルトの名無しさん:02/12/22 04:31
CWndにもSendMessageあるんだから、
MFC=SendMessage使わないじゃないよ、知らない人向けに言っておくと。
メッセージ関連はクラスメンバとして隠蔽化されてるから
内部的にSendMessage使いまくりなのを知らない人も初心者にはいるだろうけど。

153 :デフォルトの名無しさん:02/12/22 04:41
MFCのソースコード追いかけるとSendMessageだらけだね。


154 :デフォルトの名無しさん:02/12/22 20:51
CFileExceptionのエラーコードを日本語に代える方法を教えてください。

155 :デフォルトの名無しさん:02/12/22 20:57
エラーコードは数値ですが?

156 :154:02/12/22 21:22
>>155
だからそれを日本語に変換する方法をおしえてと・・・
日本語っていってもエラーコード13を文字列の13に変換したいっていってるんじゃないよ。


157 :デフォルトの名無しさん:02/12/22 21:31
>>154
それの基本クラスメンバを見てみる。

158 :デフォルトの名無しさん:02/12/22 22:08
特に仕事で使う目的はないんだけど
VC++でTCP/IPを扱うお勉強するには
どんなプログラムを試作するのがいいと思いますか?

159 :デフォルトの名無しさん:02/12/22 22:13
>>158
TCP/IPを扱うプログラム。

160 :デフォルトの名無しさん:02/12/22 22:23
>>156
例外クラスのGetErrorMessageか、
APIのFormatMessageだよ、カス

161 :145:02/12/22 23:58
>>146
あそっか。ウィンドウクラスを基準にするってことか。
WM_USERの方はそれでいいけどWM_APPの方は何度読んでも分からない
文章だよね。"available for use by applications"って
当たり前じゃん!まあMFCに作らせたウィンドウならWM_APPの方が
安全ってことかな。

162 :デフォルトの名無しさん:02/12/23 00:29
>>154
                    , -──--- 、..____
                 ,、-‐'"::::::::::::::::::::::::::::::::::::::::::::::`` ー---、
               /:::::::::::::::::::/:::::::::::::::::::::::::::/::::::;:ィ´:::::::::::|
              /:::::::::::::::::::/:::::::::::::::::::::::::::/:::::::/:/::::::::::::ミヽ
                /::::::::::::::::/:::::::::::::::::::::::::::::/::::::::::/::::/:::::::::/:/:ハr'ヽ
            /::::::::::::::::/:::::::::::::::::::::::::::::::/::::::::::/::::/::::::/:/:::レ::イ::T:l
              /::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;ィ:::|:::::ハ::::::|::|::/|::::::|:::::::|
           /::::::::::::::::::::::::::::::::::::::::__::::::::::::::://|::ト、::L|::::|!:||:!/::::/::::|::!
           |:::::::::::::::::::::::::::::::::::::r'rヘヽ::::彡   |:! v!|--,.、`゙//:::::/リ
           |:::::::::::::/::::::::::/:::::::{ (⌒ |:r'´       ` 、l:/ ///l:/〃
          /:::::::::::/::::::::::/::::::::;ハヽ. |:!             |'´  '′
          /::::::::::/:::::::::::/:::::::/:::::::L°            ゙、
         /::::::::/:::::::/:::/::::::/::::::::::| l            _ ヽ
           /::::::::/:::::::/:::/::::::/::::::::::::|  l         ____r'´   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
         /:::::/:::::::/::::::::::::/::::::::::::::|          `7′  <  よくわからないモノを
     /::::::/::::::::::/:::::::::::::/ :::::::::::/           /      |  無理して使うからよ
    /:::::/::::/::::/::::::::::::::/ :::::::::::/二`ヽ、  `iヽ 、____/       \_________
   /:::::::::/:::/::::::::/::::::::::::彡.:::::::::::/三ミヽ、 ``=ヽ
   |:::::::::|::/::::::::::::/:::::::/:::/彡:::::∧`ヽ、 \三ミr'ヽ、


163 :デフォルトの名無しさん:02/12/23 00:50
俺、この間まで WM_APPを使うべきところで、全部 WM_USER 使ってた。鬱。

164 :デフォルトの名無しさん:02/12/23 00:50
>>158
勉強目的だったら既存のクラス使わないでAPIからソケットを扱う方がいいかも

165 :デフォルトの名無しさん:02/12/23 18:14
CFontDialogで、
下線と取り消し線設定のチェックボックス表示は有効で、
色選択リストの表示を無しにするにはどうしたらよい?
(CF_EFFECTSは両方いっしょに制御しちゃう‥‥)
簡単な方法はあるだろうか?


166 :デフォルトの名無しさん:02/12/23 20:31
>>165
簡単な方法・CFontDialogのところをダブルクリックしてF1を押しなさい。

167 :デフォルトの名無しさん:02/12/23 22:30
クリックでも可

168 :デフォルトの名無しさん:02/12/25 00:27
クラスの中でメンバ変数
CArray<CHoge, CHoge&> m_arrHoge;
が定義されているとして、
あるメンバ関数のなかで、
m_arrHoge.add(CHoge());
というようなことをした場合、
CHogeの実体はどこにあるの?



169 :デフォルトの名無しさん:02/12/25 02:40
arrHogeのなか。

170 :デフォルトの名無しさん:02/12/26 16:07
CTreeCtrlで、特定の子アイテムのみチェックボックスを
付けることは出来るのでしょうか?

171 :デフォルトの名無しさん:02/12/27 03:05
>>170
できなかったら凄く面白い。

172 :デフォルトの名無しさん:02/12/27 17:18
ttp://www.codeguru.com/treeview/simple_checkbox.shtml
こんなのくらいしかないな。
171は、どうやるのか教えれ

173 :デフォルトの名無しさん:02/12/27 20:22
>>172
CTreeCtrlはSetCheckでチェックボックスが表示されないバグがある。
さらに、イメージリストを設定するとなぜか直るというバグ付き。
だからSetImageListでイメージリストを設定すればちゃんと動くのだが…
結構有名なバグだと思ったのに(´Д`;
#って、そこにかいてあるじゃん…

174 :デフォルトの名無しさん:02/12/29 04:25
日本語の文字コードの変換処理に
http://www.vector.co.jp/soft/dl/win95/util/se020949.html
のnkf32.dllを使用しようとしているのですが、実行する時に
「序数 3 がダイナミック ライブラリ NKF32.dll から見つかりませんでした。 」
と出てうまくいきません。下のやり方は間違っているのでしょうか?

//-- test. cpp --
extern "C" {
#include <nkf32.h>
};

int main(){
 char buf[256];
 GetNkfVersion(buf);

 cout << buf << endl;
 return 0;
}


175 :デフォルトの名無しさん:02/12/29 04:49
>>174
DLLの場所がおかしいだけだろ。
俺はできたぞ。
(Win2000SP2&VC++6SP5)

176 :デフォルトの名無しさん:02/12/29 05:27
んでどこがMFCなのよ

177 :デフォルトの名無しさん:02/12/29 07:12
>>175
大ボケしてました。(´Д`;)
ありがとうございました。

>>176
スレタイの "DLL" を見て脊髄反射的に…

178 :デフォルトの名無しさん:03/01/01 04:48
スレッドの停止について質問です
OnDestroy()にてスレッドと、その内部で使っているオブジェクト(m_obj)を破棄します。
現在は以下のようにsleepで無理矢理同期させていますが、
正しくはスレッドが完全に停止し破棄された時のイベントか何かを待つのだと思います。
WaitForSingleObjectを入れていますが全く効いてません。
現在は停止イベント後もm_objのメソッドをスレッドが呼び出してしまいアクセスバイオレーションになります。
どうしたらいいですか?
XXX::OnDestroy()
{
 〜途中略〜
  if(m_EventThreadStop)
  {
    SetEvent(m_EventThreadStop);
    m_EventThreadStop = NULL;
  }
  if(m_pThread)
  {
    WaitForSingleObject(m_pThread, INFINITE);
    m_pThread = NULL;
  }
  ::Sleep(500);
  if(m_obj != NULL)
  {
    delete m_obj;
    m_obj = NULL;
  }
}


179 :デフォルトの名無しさん:03/01/01 07:42
>>178
WaitForSingleObject(m_pThread->m_hThread, INFINITE); ?

180 :デフォルトの名無しさん:03/01/01 15:49
VC++のスタンダード版なんですけど、
SP5のファイルをインストーラ使わずに直接cabを解凍して
適当にぶち込んだらMFCのスタティックリンク版が使えるように
なったり、最適化が出来るようになっちゃいました、で再びやろうと
思ったのですが、どうやってやったのか忘れちゃって。
誰か分かりますか?

181 :デフォルトの名無しさん:03/01/01 18:25
今まで非MFCでやってたんですけど、仕事でMFCを使うことになりました。
ダイアログボックスの各コントロール扱い方なんですけども、
MFCのクラスウィザードでメンバ変数を作ってやるのと、それを使わないで
やるのと、どちらが一般的なのでしょうか?
私はとりあえず、クラスウィザードでメンバ変数を作成せずに、
下記のような感じでやりました。
class CDialog{省略
public:
 struct Data{
  CString strA;
  BOOL   bB;
 };
private:
 Data m_data;
};

182 :デフォルトの名無しさん:03/01/01 20:14
>>179
ありがとう。ドンぴしゃ正解でした。

183 :デフォルトの名無しさん:03/01/02 05:57
>>181
MFCを使うんなら、DDX,DDV使える既成のもの使ったほうがいいんじゃね?

184 :デフォルトの名無しさん:03/01/02 06:09
>>181
>ダイアログボックスの各コントロール扱い方なんですけども、
>MFCのクラスウィザードでメンバ変数を作ってやるのと、それを使わないで
MFCのダイアログはコントロールに CString や int, BOOL などの変数を
結びつけることができるのが便利、コントロールのクラスを結びつけることもできる。
ダイアログのリソース作って、クラスウィザードでそのリソースのCDialog派生クラス作って
メンバ変数ページでコントロール選択して変数の追加でダイアログ上のコントロールに
結び付けられた変数を追加できる。カテゴリでコントロールを選択するとコントロールのクラスを
結び付けられる。エディットコントロールに文字列・数値などを入力するだけならカテゴリで
値を選択するのが楽。
自力でコードを書くこともできるけど、ウィザードを使うと楽。
変数とコントロールを結び付けてるのはDDX/DDVサポートのDoDataExchange()関数
エディット・ラジオボタン・チェックボックス・ボタンコントロールしか使わなかったら楽にできる
ボタンはメッセージBN_CLICKEDとかの処理。

185 :181:03/01/02 19:12
>>183,134
どうもありがとうございます。
自分でコード書いちゃったよ。
こいつメンドウなことやってるなーって思われそうです。
時間あったら直しとこ。

186 :デフォルトの名無しさん:03/01/06 12:03
ダイアログに貼り付けたCRichEditCtrlからの
NM_SETFOCUS、NM_KILLFOCUS、EN_SETFOCUS、EN_KILLFOCUSが
いずれも受け取れないのはどうして?


187 :デフォルトの名無しさん:03/01/06 12:48
クラス生成してないとか?w

188 :デフォルトの名無しさん:03/01/06 17:30
クラスウィザード使わずに手で打ってるとか?w
コモンコントロールでも取れないメッセージがあるみたいだからOnNotifyでぶんどりなされ。

189 :デフォルトの名無しさん:03/01/06 18:25
VC++初心者です。
阿呆な質問かもしれませんが、VC++では例えばリストボックス
を改造してエディットボックスに変更したり出来るのですか?

190 :デフォルトの名無しさん:03/01/06 18:32
>>189
継承しなされ。

191 :デフォルトの名無しさん:03/01/06 23:30
>>189
改造せずにエジットボックス使え。

192 :デフォルトの名無しさん:03/01/07 18:22
CDCクラスのRoundRectについて質問させて下さい!

CRect myRect;
CPoint myPoint;
の時、
(1) pDC->RoundRect(myRect, myPoint)
(2) pDC->RoundRect(&myRect, myPoint)

(2)の方が実行スピードは速いですか?

193 :デフォルトの名無しさん:03/01/07 20:19
sample.dsp sample.cpp sample.rc sample.clw
sapleDoc.cpp sampleView.cpp Stdafx.cpp とこのようなもともとあるファイルで、
どのファイルをいじくれば編集できるのですか?(画像処理で色変換がしたいです)
初心すぎてすみません、教えてください

194 :デフォルトの名無しさん:03/01/07 20:31
>>192
PerformanceCounter でも使って計測してみなはれ

ただ、最適化するのが目的ならもっと他に最適化する部分があると思うがな


195 :192:03/01/08 00:05
PerformanceCounterってやつ調べてみます。
何分まだ覚えたてなので、
どうせなら、少しでも効率の良い方を覚えようと思いまして・・・
なんかでポインタを渡した方が速いっていうのを、
見た気がしたもので・・・
最適化なんてまだまだまだ先です。
レスありがと!

196 :デフォルトの名無しさん:03/01/08 03:44
VC++6.0をSP5にあげてSDKバージョンアップして
#define WINVER 0x0500も加えたのですが、

CWnd::FlashWindowEx

が見つからないのです。どうすればいいですか?

197 :デフォルトの名無しさん:03/01/08 07:05
>>196
FlashWindowExてWin32APIやん。

198 :デフォルトの名無しさん:03/01/08 11:22
C/C++とは関係ないんですが
VisualC++(Ver6.0)にてCソース以外のファイルでも(拡張子がplとかjsとか)
キーワードに応じてテキストにカラーを付ける方法はないでしょうか?

perl固有のキーワードに個別に対応しないまでも
Cのキーワードに割り振ったテキストカラーだけでも表示してくれればいいんですが・・

199 :デフォルトの名無しさん:03/01/08 14:47
自作のライブラリファイル(mylib.h, mylib.lib)の関数や構造体が
IntelliSenseやClassViewで表示されたり表示されなかったりします。
.libではなくソースを直接プロジェクトに登録すると表示されます。
どうすれば確実に表示されるようになりますか?

環境はVC6.0Pro SP5です。


200 :デフォルトの名無しさん:03/01/08 19:24
Win2000上でMDIアプリを動かしているのですが、ウィンドウを切り替えたりすると
少しずつ使用メモリが増えていくのですが、こういうものなんでしょうか?
一度切り替えて表示したウィンドウを再度表示したりした場合は増えなかったりします。

201 :196:03/01/08 19:25
>>197
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vclib/html/vclrfcwndflashwindowex.asp

今はWINAPIを直で呼び出して使っていますが、
せっかくあるものを使えないのが気持ち悪いのです。

MFCのソースのバージョンが古いのかなと思い、
探してみたけれど無料ダウンでは見つからず。
CWnd::FlashWindowが宣言されている
AFXWIN.H(154,220 バイト)の日付が98/06/15。。。
.NETを買うしかないのかな?

.NETを持っている方のAFXWIN.Hの日付を教えてください<(_ _)>

202 :デフォルトの名無しさん:03/01/08 19:27
>>198
ない

>>199
確実に表示はできない。
IntelliSenseが表示されない場合は編集中のクラスのヘッダファイルを保存しなおす。
ClassViewも同様に、表示されないクラスのヘッダファイルを保存しなおせば現われたりする。

MFC関係ないんなら次からはこっちで聞いとくれ。
ttp://pc3.2ch.net/test/read.cgi/tech/1038160750/l50

>>200
どこかでメモリリーク起こしてないか?

203 :デフォルトの名無しさん:03/01/08 19:42
>>200
子ウィンドウを作ったらその分使用メモリは増えるが、切り替えるだけなら変わらないはず。

204 :デフォルトの名無しさん:03/01/08 19:44
>>198
言語を追加する方法は見つけられなかったが、
HKEY_CURRENT_USER\Software\Microsoft\Devstudio\6.0\Text Editor\Tabs/Language Settings\C/C++
以下のFileExtensionsに拡張子を追加するとC/C++のソースと見なされる。
あとはusertype.datに書いておけばいい。

>>199
ヘッダをプロジェクトに入れれば出ると思う。
Intellisenseだけ出したいのなら、そのクラス・関数の情報が入ってる*.ncbを持ってきて、
自分のプロジェクトのncbとすげ替えると出たりする。

205 :デフォルトの名無しさん:03/01/08 21:04
>>202
メモリリークは起こってない・・・・と自信をもって言えないのが情けないのですが、
普通はやっぱりウィンドウを切り替えた位ではメモリ使用量は増えないですか・・・。

>>203
例えばあるボタンを押した時にダイアログを表示するような処理で、ダイアログを表示して
ダイアログ上でOKボタンなどを押して消した場合、メモリ使用量はダイアログ表示前と
同じでなければ、何かしら問題があると考えた方がいいですか?

206 :IP記録実験:03/01/08 21:12
IP記録実験
http://qb.2ch.net/test/read.cgi/accuse/1042013605/

1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。

27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?

38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。

73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。

207 :デフォルトの名無しさん:03/01/08 21:49
デバイスコンテキストの取得について教えてください。
ビュークラスの中で取得するのは簡単なのですが、他の場所、例えば自作クラスの中で取得するには
どうしたらいいんでしょうか。自作クラスにビューに描画させる機能を付けたのですが、
そのメンバ関数を呼ぶ度にいちいち引数としてビューで取得したデバイスコンテキストを渡しています。
これを自作クラスの中で取得させたほうがよりスマートだと思うのですが方法がわかりません。
どなたかよろしくお願いします。

208 :デフォルトの名無しさん:03/01/08 23:15
ほしゅ

209 :デフォルトの名無しさん:03/01/09 00:01
>>207
GetDC
CreateDC
ClientDC

210 :age2ch.pl 0.03.28:03/01/09 00:13
ガ━━(゚Д゚;)━━ン!

211 :デフォルトの名無しさん:03/01/09 00:17
ガ━━(゚Д゚;)━━ン!

212 :デフォルトの名無しさん:03/01/09 00:29
まぁアレだな。
キタ━━━━(゚∀゚)━━━━━!!!

213 :デフォルトの名無しさん:03/01/09 00:38
最小化時にシステムトレイに格納し、タスクバーを削除したいのですが

LRESULT CTestDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
  switch (message)
  {
  case WM_SYSCOMMAND:
     switch( wParam & 0xFFF0 )
     {
     case SC_MINIMIZE://最小化されたら
       //システムトレイにアイコンを追加する処理
       〜
       ShowWindow(SW_HIDE);//タスクバー非表示?
       break;

     case SC_RESTORE://システムトレイから復帰したら
       //システムトレイからアイコンを削除する処理
       〜
       ShowWindow(SW_SHOW);//タスクバー表示?
       break;
     }
     break;
  }
  return CDialog::WindowProc(message, wParam, lParam);
}

こんな感じに書いて見たのですが、ほんの一瞬タスクバーが消えるものの、
再度タスクバーが表示されてしまいます。
内部のどこかでShowWindow(SW_SHOW)みたいな事をやっちょるんでしょうか?

214 :デフォルトの名無しさん:03/01/09 00:52
ひろゆき好きです(ポ

215 :デフォルトの名無しさん:03/01/09 01:03
>>213
SDK気分が抜けておらんからじゃ。
CWnd::WindowProc()はメッセージが通過するだけじゃ。
これでは、DefWindowProcが呼ばれてしまうんじゃ。
だから表示されるんじゃ。
MFC流儀に従って、OnSysCommand()をオーバー来度するんじゃ。
基底クラスのOnSysCommand()を呼ぶんじゃないんじゃ。

216 :デフォルトの名無しさん:03/01/09 01:09
間違ったんじゃ。
DefWindowProc -> CallWindowProc

217 :デフォルトの名無しさん:03/01/09 01:11
キャップでの書き込みは?やっぱりIPとられるの?

218 :デフォルトの名無しさん:03/01/09 01:18
このスレで言うべきことではないが、
winnyチックな掲示板ができるだろうね。
もうできてるのか?

219 :デフォルトの名無しさん:03/01/09 01:26
>473
アレ・・ちょっと・・・か?
「ちょっと」・・・じゃないような・・・。


220 :デフォルトの名無しさん:03/01/09 01:39
>>215
なるほど!!言われたとおりに試して見たらうまく出来ました!!
どうも有難うございました!

221 :デフォルトの名無しさん:03/01/09 02:00
ニュー速+

【2ch】管理人のひろゆき氏がqbサーバで全レスIP記録の実験を開始
http://news2.2ch.net/test/read.cgi/newsplus/1042017485/


222 :デフォルトの名無しさん:03/01/09 02:02
>>201
それってクラスツリーたどっていくとCDHtmlDialogとかも載っているので
MFC7のリファレンスじゃ?
MFCは無料でバージョンアップできません。
つまりVC++6を使っているならMFCは6のままなので、SPやSDKをバージョンアップしても
MFC7の関数は使えない。

223 :207:03/01/09 02:21
>>209
その3つの関数について調べてみましたがよくわかりません。
私の質問がちょっとわかりにくかったんだと思いますが、
私が知りたいのはビューのデバイスコンテキストの取得方法で、
新しく作りたいというわけではありません。
CClientDC dc(this);
と、ビュークラスの中でよくやったりしていますが、それを
自作クラスの中でやるにはどうすればよいか?という質問です。
このthisのところを他の適当なものにすればよさそうなのですが
それがわからないのです。もしくは他に適当な方法があるのでしょうか。


224 :デフォルトの名無しさん:03/01/09 02:42
今までの暗黙の了解が公になっただけの話では。

225 :デフォルトの名無しさん:03/01/09 03:28
敗北、だな。

226 :デフォルトの名無しさん:03/01/09 03:49
>>222
THX。納得しました。

227 :デフォルトの名無しさん:03/01/09 11:39
>>223
コンストラクタとは何か
thisとは何か
GetDC()

これらを知らないと見た

228 :デフォルトの名無しさん:03/01/09 12:19
                   /\        /\
                   /:::::::ヽ____/::::::::ヽ、
                  丿 ::.__  .:::::::::::::  __  ::::ヽ_
                 / /。 ヽ_ヽv /: /。ヽ  ::::::ヽ
 -┼-   丿~~~|     / / ̄ ̄√___丶  ̄ ̄\  ::::|            ■ ■
 -┼-   /~~~~/ ━━━ | .:::::::::: / / tーーー|ヽ     ..::::: ::|━━━━━━  ▼ ▼ 
  .|       丿      | .:::::.  ..: |    |ヽ        ::|            ● ●
                | :::    | |⊂ニヽ| |      :::::| \
              / /| :    | |  |:::T::::| !      .::| \ \\
             / / \:    ト--^^^^^┤      丿 \\\ \\\

                      お、大阪・・・・        

229 :デフォルトの名無しさん:03/01/09 18:14
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 138720人 発行日:2003/1/9

年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。

そんなわけで、年末に予告したIP記録ですが実験を開始しています。

「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────

230 :横レス スマソ:03/01/09 18:58
GetDC()
ってAPIの?


231 :デフォルトの名無しさん:03/01/09 20:14
「びじゅあるC++」を勉強するには何から始めればいいですか?

232 :デフォルトの名無しさん:03/01/09 20:22
>>231
当然、アルゴリズム体操。

233 :207:03/01/09 21:14
自己解決しました。
いろいろ試行錯誤した結果、
最初にビューの m_hWnd をクラスに渡しておいて、
必要なときに
CDC *pDC=CDC::FromHandle(GetDC(m_hWnd));
とやって、どうにか目的のデバイスコンテキストを得ることができました。


234 :デフォルトの名無しさん:03/01/09 21:46
>233
そんな回りくどいことしなくても
CDC *pDC = pWnd->GetDC();
でいいんじゃない?

235 :207:03/01/09 22:02
>>234
そのpWndってどうやって得ればいいんでしょう?
MFCでプログラムしていますが、そんなの定義されてないです。

236 :デフォルトの名無しさん:03/01/09 22:04
CListCtrlのSortItems()でソートかましたんだけど
SetItemData()で設定したアイテムデータはソートしやがらねぇ。
ソート比較関数の中で入れ替えるのもなぁ・・・
なんかスマートな方法無いものか。

237 :236:03/01/09 22:17
ぐえっ!俺のバグだ・・・

238 :名無し@沢村:03/01/09 22:19
>>235
ヌヒよ、m_hWndを渡すのではなくViewへのポインタを渡しなさい。

239 :デフォルトの名無しさん:03/01/09 22:29
>>235
AfxGetMainWnd()
CFrameWnd::GetActiveFrame()
CFrameWnd::GetActiveView()
その他いろいろウィンドウを取得するメソッド・関数は用意されているが。

>>238
たのむからこのスレへ来ないでくれ

240 :207:03/01/09 22:34
>>238
私も最初そうしようと思ったのですが、
ビューのヘッダをインクルードしようとすると
変なところでコンパイルエラーが出ます。ひょっとして私だけですか?

241 :名無し@沢村:03/01/09 22:36
>>239
ヌヒよ、そうやって適当にウィンドウを取得しても正常に描画できるわけないだろ。

242 :名無し@沢村:03/01/09 22:40
>>240
ヌヒよ、別にViewのヘッダファイルをインクルードする必要は無いのではないか?
CWnd* を渡せばよいのだから。

243 :デフォルトの名無しさん:03/01/09 22:51
>233
この定義をよくみて考えてみれ

CDC* CWnd::GetDC()
{
return CDC::FromHandle(::GetDC(m_hWnd));
}

わかんなくても別に>233の方法も
間違ってるわけじゃないからそれでいいさ

244 :207:03/01/09 22:56
>>239
そんな関数があったのですか。なるほどその方法でもいけそうですね。
>>242
CWnd*ですか・・どうも私が勘違いしていたようですね・・・。

どうやらCWndあたりで私の理解が足りなかったようですね。
勉強しなおそうと思います。

245 :デフォルトの名無しさん:03/01/09 22:58
_ヘ彡ヘ
(,, ゚∀゚)<遅ればせながら記念パピコ

246 :デフォルトの名無しさん:03/01/10 00:53
>>551
「コテハン戦隊ラウンジャー」に鑑定依頼してきますた

247 :デフォルトの名無しさん:03/01/10 09:34
なんか笑えるスレだな

248 :デフォルトの名無しさん:03/01/10 09:55
なんか笑えるスレだな

249 :デフォルトの名無しさん:03/01/10 10:02
ばしばし誤爆が来てないか?

250 :デフォルトの名無しさん:03/01/10 10:13
某○○は法律関係の仕事をしてるのですか?

単なる子供?

251 :デフォルトの名無しさん:03/01/10 10:47
たった400万の罰金で、広告費に換算したら1億以上の大きな反響

252 :デフォルトの名無しさん:03/01/10 11:29
今年こそ2ちゃんねるが潰れますように

253 :デフォルトの名無しさん:03/01/10 11:56
2ちゃんねる が衰退していく

あるネット関連会社の社長は、
「いずれにしても2ちゃんねるは資金が底をつけば終わり。
あまり知られていないことだが、2ちゃんねる内部関係者によると今、
大手通信会社系が調査費名目で資金提供している。
だが、それが止まれば続けてはいけないだろう」
と証言する。
2ちゃんねるが判決によって力を失った場合、
資金提供の打ち切りも予想される。

http://ascii24.com/news/reading/causebooks/2002/07/01/636911-000.html

254 :デフォルトの名無しさん:03/01/10 12:50
>>459に追加とついでにIPについて調べてみた
ニュース速報@Megabbs:IPは?(書いてない)
http://www.megabbs.com/news/index.html
ニュース速報@MILKCAFE:IPは基本的には取ってない(http://www.milkcafe.net/gu.html参照)
http://www.milkcafe.net/news/
ニュース雑談@sub-all:IPは基本的には取ってない(http://www.bbs2.net/fuck.html参照)
http://www.bbs2.net/news23/
経済@いちごびびえす:IPは取ってない(http://www.ichigobbs.com/info/info.html参照)
http://matari.ichigobbs.com/economy/
ニュース速報@匿名掲示板(仮):IPは取ってない(http://kari.to/about/参照)
http://kari.to/bbs/g4/

255 :デフォルトの名無しさん:03/01/10 15:13
http://qb.2ch.net/test/read.cgi/accuse/1038878069/720
なんですかこれ(謎)

256 :デフォルトの名無しさん:03/01/10 16:40
ねえ、ひろゆきって400満ももってんの?
いつもお仕事はなにしていらっしゃるのか?

257 :デフォルトの名無しさん:03/01/10 23:01
裁判所or警察経由っすね>アクセスログが渡る場合
後は、羽田タートルのスレッドの中での粘着さん。

258 :デフォルトの名無しさん:03/01/10 23:06
>>720
一般人はどうやってみるんだ?
掲示板といえるのか。

259 :デフォルトの名無しさん:03/01/11 00:24
場所によるよね。


匿名重視の板では厨房どころか普通の客まで帰っちゃうという罠。
実況なんかだと逆に非常に便利(荒らしの特定)だろうけど。

260 :デフォルトの名無しさん:03/01/11 00:33
さりげなく自スレの宣伝するんじゃねー
でも、良かったらさんもさんもマァヴさんも
おいらの立てたスレに遊びに来てね。

どうせIP記録されるんならふしあなさんしようぜ
http://live.2ch.net/test/read.cgi/festival/1042199282/l50

261 :デフォルトの名無しさん:03/01/11 03:36
このスレにちょいと書いてあるんですけど、
ダイアログでクラスウィザードを使いメンバ変数を作成すると
多数のメンバ変数ができてしまったときに扱いにくくないですか?
私としては構造体にまとめたいのですが、
そうすると自力でコード書く部分がかなり多くなってしまいます。
何か良い方法はないでしょうか?



262 :デフォルトの名無しさん:03/01/11 04:13
幾つくらいメンバがあるの?
あんましおおいなら、ダイアログを分割したりしたほうが
よさそうだけど。

263 :デフォルトの名無しさん:03/01/11 09:20
ポリタンクさん、「私のニュース」で活動して下さいって、
あれほど、あれほどお願いしたのに、、、


264 :デフォルトの名無しさん:03/01/11 09:20
ひろゆきカマン。

265 :デフォルトの名無しさん:03/01/11 09:56
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 139038人 発行日:2003/1/10

なにやら、連日メルマガだしてるひろゆきです。

そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。

重くなって落ちたりしてもご愛嬌ってことで。。。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────

266 :デフォルトの名無しさん:03/01/11 10:49
2ちゃんねらー達も伝えられないでもわかっていた。かつて、一度足りとも起らなかった事が、
自分達の上に降りかかろうとしている事を。

その重い沈黙を、広場の一角から上がった声が破った。
「言論規制、逝って良し!!」
だがその声は、それに続く声も無いままに切れてしまった。しかし、それとは別の声が、
再び沈黙を破ってひびいた。
「2ちゃんねる、逝って良し!!」

この叫びは、法廷前広場に掲げられたモナーの書かれた横断幕に、そして折りしも誰かの手によって
掲げられたギコ猫としぃの手旗に向かって、まるで海の波でもあるかのように、打ち寄せては去り、
再び打ち寄せては去るのを止めなかった。

残務処理に向かう管理人達は心配した。自分達の決定に反してまでも、攻撃に打って出るつもりかと
思ったのである。彼らの呼びかけで、多くのブラウザが一斉に開かれた。
だが、これは無用な心配に過ぎなかった。なぜならば、田代やネオ麦事件の時と同じく、
武器を持たない2ちゃんねらーたちの、彼らなりの礼砲だったからである。
彼らにも匿名体制の終焉は2ちゃんねるの滅亡と同じ事がわかっていたのである。
法廷前から始まった書き込みは、過去の祭りと同じように掲示板の書き込みを埋めていった。
「2ちゃんねる、逝って良し!」

「2ちゃんねらー、逝って良し!!」

267 :デフォルトの名無しさん:03/01/11 11:19

≪1864年、イギリス人のF・ベアトにより撮影された江戸のパノラマ写真≫

愛宕山という20メートル位の小さい丘から撮影されました。
映像に矢印を2秒くらい置いておけば、拡大できるので(右下に出るマークをクリック)
是非 スクロール して楽しんでください。
http://aquarius17.cool.ne.jp/dc2wp/up/box/sub.cgi/scene0130.jpg

ちなみに李朝のソウルはこちら。まことにありがたい町並みです。
http://www2.nhcc.go.kr/cgi-bin/xcall?ssid=105925&dbid=/photo/web/photo&ty=1&fi=SJ0052&cap=SJ0052



268 :デフォルトの名無しさん:03/01/11 12:20
ポイズン

269 :デフォルトの名無しさん:03/01/11 12:54
ワラタ
生きろ!快速ストーカー

270 :デフォルトの名無しさん:03/01/11 15:42
テレビにニュース速報が入る。
俺は慌ててパソコンを立ち上げ、そして気付く。
「あぁ、2chは閉鎖したんだっけ……」
テレビからは現場の慌しい状況が伝わってくる。
もし2chがあったら、どういうスレが立っているのだろう。
重複スレが沢山できて、それで荒らしとかやってきて……
テレビでは相変わらず、レポーターが必死で現場の状況を伝えている。
可愛いレポーターだ。俺は、頭の中で「萌え〜」というレスを
つけている自分を想像した。
後ろの群集がテレビに向かって挑発的なポーズを取っている。
「なんだ、あのドキュソ」「厨房氏ね」……
俺はたまらなくなり、無いとは分かっていながら再び2chにアクセスした。
しかし、画面には一言「閉鎖したのです。。。」とだけしか表示されない。
何度リロードしても変わらない。あの日以来、2chは止まったのだ。
どうやら犯人が逮捕されたようだ。相変わらず可愛いレポーターが
その状況を伝えている。
「さよなら、にちゃんねる」
俺はお気に入りから2chを削除し、そして騒がしいニュースを冷めた目で
見るのであった。


271 :デフォルトの名無しさん:03/01/11 15:48
2chで内部告発的な事をするリスクが大きくなるのかな?
発信元がわかるんで、告発された側が「よーし金でねじ伏せちゃうぞー」
とか言って裁判でも起こしまくって。
そんな状況はガクブルだから、面白そうな(真実である事が前提の)投稿は、減る?のかな?
考え過ぎ?って言うか見当違い?どうだ?どうなんだ?

272 :デフォルトの名無しさん:03/01/11 21:19
>>261
確かに100も200もあると大変だよなあ。

273 :デフォルトの名無しさん:03/01/11 23:51
なーんか大変だな

274 :デフォルトの名無しさん:03/01/12 00:01
あ〜あ2ちゃんもこんなアホばっかになっちまったか
これも時の流れかね

もうだめぽ

275 :デフォルトの名無しさん:03/01/12 00:29
>>261
DDX,DDVを使う変数のみウイザードで作成
それ以外は構造体なり、クラスなりにする

でいいんでは?

276 :デフォルトの名無しさん:03/01/12 00:36
MFCのプログラミングでファイルをオープンしてテキストファイルを読み込む
プログラムを作っているのですが、一回読み込んだファイルを再度読み込む
ことができません。ソースは

CString filename = "C:\\a.txt" //ファイルの位置

CStdioFile fin1(filename, CFile::modeRead);//概念見出し辞書をオープン
while(fin1.ReadString(buf) != NULL){
         :
         :
}

CStdioFile fin2(filename, CFile::modeRead);//概念見出し辞書をオープン
while(fin2.ReadString(buf) != NULL){
         :
         :
}

という感じです。
コンパイルは通るのですが、実際に動かしてみる(内容としては文字列検索)と
どうも2回目のファイル読み込みが機能していないみたいで・・・。
何かよい方法はありませんか?

277 :デフォルトの名無しさん:03/01/12 00:44
>>276
例外をキャッチしてみるとか。

278 :デフォルトの名無しさん:03/01/12 00:47
>>276
Closeしてないからじゃない?

279 :デフォルトの名無しさん:03/01/12 01:44
>>278
Closeは
fin1.Close();
という形でいいんですかね?
それを加えたら途中で止まってしまいました。
何度もすみません。

280 :デフォルトの名無しさん:03/01/12 01:45
>>278
それくせー。

281 :デフォルトの名無しさん:03/01/12 02:09
>>279
そんな感じ。
ところで、どこでcloseしたの?
whileの中じゃないよね?



282 :デフォルトの名無しさん:03/01/12 02:19
あれなんでスレストかかったの?
もう最後の方はさっぱり意味わかんなかったけど・・・
ってゆうかほろゆきが止めたのか?

283 :デフォルトの名無しさん:03/01/12 09:50
(;´Д`)ハァハァ

284 :デフォルトの名無しさん:03/01/12 09:52
つまんね

285 :デフォルトの名無しさん:03/01/12 12:37
>>276
CStdioFile::ReadString の返り値ってBOOL型なんだからNULLと比較してはマズいような。
動作に影響はないかもしれないけど。

この場合ではwhileが終わったらfin1.Close();やfin2.Close();すべき。
(whileの後に処理があるなら別。)

286 :デフォルトの名無しさん:03/01/12 13:27
CTime ct;
cs = ct.GetCurrentTime("%H : %M : %S");

とあるときはCTimeのメンバー関数GetCurrentTimeはCTimeのオブジェクトを
返す関数と考えて良いでしょうか?



287 :名無し@沢村:03/01/12 13:56
>>286
ヌヒよ、それくらい自分ですぐ調べられるだろ。

288 :デフォルトの名無しさん:03/01/12 13:58
>>286
その前にCTimeにそんな関数ないだろ。

289 :デフォルトの名無しさん:03/01/12 15:33
>>286
どこかのアホサンプルをコピペでもしたのか?
GetCurrentTimeの返り値の型を見ろ。

290 :デフォルトの名無しさん:03/01/12 16:32
厨な質問で申し訳ないですが、
データ型のboolとBOOLや、
例外処理のtryとTRYは
処理速度や機能面で何か違いがあるのでしょうか?
それとも単に大文字小文字の違いだけ?


291 :デフォルトの名無しさん:03/01/12 17:36
>>290
#define TRY { AFX_EXCEPTION_LINK _afxExceptionLink; try {
typedef int BOOL;

292 :名無し@沢村:03/01/12 17:49
>>288
ヌヒよ、嘘をついてはいけません。

293 :290:03/01/12 18:05
>>291
ようするにTRYは単なるtryのマクロ定義で、
BOOL型はint型の変名に過ぎないわけですか。
VC++でboolを使うとなにか都合が悪いことがあるのでしょうか?

294 :デフォルトの名無しさん:03/01/12 18:10
>>292
GetCurrentTime()

GetCurrentTime("%H : %M : %S")
が同じだとでも思ってるのか

295 :デフォルトの名無しさん:03/01/12 18:59
>>293
//まずい!
if(b == TRUE)

//まずい!
hoge(int n);
hoge(BOOL b);

296 :デフォルトの名無しさん:03/01/12 19:01
おっと逆か・・・
BOOLはVC5以前の名残で、互換性のため。

297 :デフォルトの名無しさん:03/01/12 20:33
fusianasan


298 :デフォルトの名無しさん:03/01/12 20:37
対応はともかく、確実に通知したという事実は残るよ。
メールや電話だと「届いていない」「読めなかった」「回線の調子が悪くて聞こえなかった」で抜けられるからね。

299 :デフォルトの名無しさん:03/01/12 20:46
フーン

300 :デフォルトの名無しさん:03/01/12 21:51
BOOLとboolの仕様が違うのが非常にむかつく(ノд`)

301 :デフォルトの名無しさん:03/01/12 21:55
CTime::GetCurrentTime
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_mfc_CTime.3a3a.GetCurrentTime.asp

302 :デフォルトの名無しさん:03/01/12 22:01
>>293
モノによってはWindowsのバージョンで違う宣言になってたり。。。

303 :デフォルトの名無しさん:03/01/13 08:49
>300
BOOLだとTRUEが1なんだよな…
boolは-1なのに。

304 :デフォルトの名無しさん:03/01/13 09:06
いったいどこのboolなんだ……(;´Д`)

305 :デフォルトの名無しさん:03/01/13 15:37
CHtmlViewクラスの画面にGDI描画がしたいのですが、
なんとかならないでしょうか?
DCにペイント命令だしても全部無視されてしまいます・・・。

306 :デフォルトの名無しさん:03/01/13 15:56
質問です。
ダイアログベースで作成しているのですが、ボタン操作でexeファイルを実行させることはできますか?
その方法があれば、どなたかご教示ください。
環境はVC6.0です。


307 :デフォルトの名無しさん:03/01/13 15:58
ceditviewでフォームに入力した文字列をいじるにはどうすれば良いんでしょうか。
検索したらシャドウバッファに格納されてるとあったのですが、シャドウバッファをどうすればいいのかわからず・・
アドバイスお願いします。

308 :デフォルトの名無しさん:03/01/13 16:58
0のnotが1のBOOLは気持ち悪い。

309 :デフォルトの名無しさん:03/01/13 17:53
>>308
変わった人だね

310 :デフォルトの名無しさん:03/01/13 18:21
いや、普通だと思うが

311 :山崎渉:03/01/13 18:32
(^^)

312 :デフォルトの名無しさん:03/01/13 21:46
>>306
ShellExecuteとか。

313 :デフォルトの名無しさん:03/01/13 22:09
法律は必要最小限のことしか決められんよ、あとはルールまかせだ。

314 :306:03/01/13 22:19
>>312
アドバイスありがとうございます。
さっそく試してみようと思います。


315 :デフォルトの名無しさん:03/01/14 00:19
>>307
UpdateData

316 :デフォルトの名無しさん:03/01/14 01:07
>>307
GetEditCtrl()でEditコントロールを取得して操作。

>>308
同じく。
どうして-1じゃないんだろう?

317 :デフォルトの名無しさん:03/01/14 08:52
おかげで(bool)!!check のような型キャストが要る…

318 :デフォルトの名無しさん:03/01/14 19:59
ダイアログボックスベースでアプリを作っていますが、
整数型の変数の値を文字型にしてStaticコントロールに表示させたいのですが
どのようにすれば良いのでしょうか?
どうやら普通のC++とやり方が違うようで、、、。

319 :318:03/01/14 20:21
×Staticコントロール
○StaticText

すまそ

320 :デフォルトの名無しさん:03/01/14 20:43
>>318
i = 10;
CString str;
str.Format( "%d", i );


321 :320:03/01/14 20:53
>>318
脊髄反射でカキコしてしまったが
ひょっとして変換方法じゃなくて表示方法がわからないのかな?
だとしたら↓みたいな感じか。

int i = 10;
CString str;
str.Format( "i = %d", i );
m_wndStatic.SetWindowText( str );


322 :318:03/01/14 20:57
>>320
>>321
どうもありがとうございます。
後半の部分は知ってましたが、前半部分が解りませんでした。
質問内容が不十分なのに答えてくださって有難うございました。

323 :デフォルトの名無しさん:03/01/14 21:00
おながい!助けて!
ツールボックスを2つ使いたいのですが、
2つ表示させるところまでは上手く行きました。
(CMainFrameクラスにCToolBarクラスのオブジェクトを追加した)

メニューにツールバーの表示/非表示を選択できますが、
AppWizardが生成したコードのままだと、独自に追加した2つ目の
ツールバーまで制御が効きません・・・
ツールバーの表示/非表示をプログラムでやるには、
どの様にしたらよろしいのでしょうか?

324 :323:03/01/14 21:03
出来れば表示→非表示→表示にした時、
以前の状態(ツールバーの位置)を保ちたいです。


325 :デフォルトの名無しさん:03/01/14 21:03
普通のC++とやり方が違うっていうかMFCの使い方を調べてないだけちゃうんかと

326 :デフォルトの名無しさん:03/01/14 21:08
CFrameWnd::ShowControlBar

327 :323:03/01/14 21:10
>>326
即レスさんくす!
早速試してみます。

328 :323:03/01/14 21:19
>>326
で、できました!多謝。


329 :デフォルトの名無しさん:03/01/14 21:23
最近、関数一個で解決するような質問ばかりな予感

330 :デフォルトの名無しさん:03/01/15 00:19
C++もWinAPIもしらずにMFCに突撃するからこのような状態になるのだよ。

331 :デフォルトの名無しさん:03/01/15 13:21
そいつは悪かった(´・∀・`)

332 :デフォルトの名無しさん:03/01/15 14:00
ファイルからCStringに直接文字列を読み込むことはできませんか?
CString str;
ifstream fi("hoge.txt");
fi >> str;
てやるとエラーが出るのでいつも
char tmp[100];
fi >> tmp;
str = tmp;
とかやってるんですが

333 :デフォルトの名無しさん:03/01/15 14:24
fi.read( str.GetBuffer( BUFSIZE ), BUFSIZE );
str.ReleaseBuffer();

334 :デフォルトの名無しさん:03/01/15 14:43
STL使ってるならstring使えって気もするが・・・
CString(MFC)使うなら>>333とかCArchiveとか

335 :デフォルトの名無しさん:03/01/15 14:43
>>333
やっぱサイズ指定しないとだめですか?
STLのstringみたいにユーザはサイズを決めないで
読み込める方法があるとありがたいのですが

336 :デフォルトの名無しさん:03/01/15 14:50
>>334
CArchiveって単なるテキストファイルを読み込むときとかにも
使うものなんですか?


337 :デフォルトの名無しさん:03/01/15 14:57
>>336
使うもんだ。そして君のやりたい
CString str;
ar >> str;
とかやるもんだ。

338 :デフォルトの名無しさん:03/01/15 15:01
MFCつかってるならCStdioFileってのがあるがな

339 :デフォルトの名無しさん:03/01/15 15:09
>>337>>338
ありがとうございますた

340 :デフォルトの名無しさん:03/01/15 16:31
>>337
そのやりかたはCStringをCArchiveに保存した時のみ有効。
ar << str;// strはCString
この時、ファイル上はテキストで保存されているわけではなく、バイナリで文字列長+文字列で構成される。
ar >> str;//復元できる
>>338
CStdioFileは1行読みのためのクラス。
テキスト全部読むとかだったら向いてないね。

341 :デフォルトの名無しさん:03/01/15 16:43
>>340
ar >> str;
だと指摘どおりだな。
ただCArchive::ReadStringってのもあるYO

テキスト全部読むなら1行読みをループさせるしか思いつかないねぇ・・
なんかいい方法ある??


342 :デフォルトの名無しさん:03/01/15 16:59
>CStdioFileは1行読みのためのクラス。
アホか。

343 :山崎渉:03/01/15 17:46
(^^)

344 :デフォルトの名無しさん:03/01/16 11:53
ツリーアイテムの一つをクリックした時にそのアイテムのテキストの位置に
コンボボックスを表示させるようにしたいのですが、どなたかキーワード
や情報のポインタだけでも教えてもらえないでしょうか。
おながいします。。。


345 :デフォルトの名無しさん:03/01/16 11:58
その場所にコンボボックスをCreateするんだと思うけど。
CodeGuruとかにサンプルないかな。
リストビューではよくある話なのでリストビューのサンプルを参考にしても良いかも。

346 :デフォルトの名無しさん:03/01/16 12:28
>>344
メンバ変数としてCComboBox持ってればいいんじゃないか?
CTreeCtrl::GetItemRect()で表示する位置はわかるし。

347 :デフォルトの名無しさん:03/01/17 00:14
CListCtrlを継承してvirtual DrawItem()の実装を書いているんだけど
{
 CDC* pDC = GetDC();
 int saveDC = pDC->SaveDC();

 pDC->DrawIcon(lpDrawItemStruct->rcItem.left,
lpDrawItemStruct->rcItem.top,
theApp.LoadIcon(IDI_MY_ICON));

 pDC->RestoreDC(saveDC);
}
と書いてもアイコンが表示されません。
その代わり
CImageList m_imageListにアイコン登録して
m_imageList.DrawIndirect(pDC,
0, CPoint(rect.left, rect.top),
CSize(ICON_SIZE_X, ICON_SIZE_Y),
CPoint(0, 0));
とやると表示されるんですが、、、
でも、アイコンの透明色が背景が透けてくれません。
なにかおかしんでしょうか?

348 :デフォルトの名無しさん:03/01/17 00:29
>>347
CImageList::SetBkColor

349 :デフォルトの名無しさん:03/01/17 01:21
このスレってフィードバック少ないよね…

350 :347:03/01/17 01:55
>>348
駄目でした。そのかわりCImageList::Create()の引数にILC_MASKを渡したら透けました。
でもやっぱりDrawIcon()は使えない・・・

351 :デフォルトの名無しさん:03/01/17 02:54
>>350
そもそもLoadIconは成功しているのかと24時間(略

352 :デフォルトの名無しさん:03/01/17 04:07
>>347
DrawIndirectの説明を穴のあくほど読め。
デフォルトではfStyle = ILD_NORMALだ。

353 :デフォルトの名無しさん:03/01/17 22:58
>>351
24時間かよ(藁

354 :デフォルトの名無しさん:03/01/18 11:10
CMenuについて質問させてください。
InsertMenuやAppendMenuで動的に作成したメニューがクリックされた時に
対応するメソッド(ハンドラ?)を定義するのにはどうしたらいいんでしょうか。
InsertMenuに渡すアイテムIDも動的に指定しています。(マクロでない)
事情により、クラスウィザードを用いないで実装しているコードをいじらなければ
なりません。
厨房ですいませんがよろしくおねがいします。。。


355 :デフォルトの名無しさん:03/01/18 11:29
テクニカル ノート 6 は見た?
IDを手で捏造したくないんなら
メニューエディタで隠しメニュー作ってそこに登録するといいyo

356 :デフォルトの名無しさん:03/01/18 11:36
>>355
ありがとうございます。
テクニカルノートをまず読んでみます。

357 :354:03/01/18 11:51
>>355
あらかじめメニューIDをいくつか予約しておいて、
ON_COMMAND_RANGEマクロを使ってそれらのIDに対応するメソッドを
定義し、その中でswitchすることでやりたいことが実現できそうです。
ありがとうございました!

358 :デフォルトの名無しさん:03/01/18 15:05
すまそ・・・。
Static内の色を変えるにはどうするのでしょうか。
1週間くらい調べてますが解らなくて・・・オロロ・・・・。

359 :デフォルトの名無しさん:03/01/18 15:09
>>358
スタティックコントロールにユニークなIDを付けて、後は他のコントロールの色を変えるのと同じ。

360 :358:03/01/18 15:35
>>359
スマソ。
ダイアログボックスベースで作っているので、
アプリを実行した時点でStaticの色を白にしたいんです。
どこにソースを書けばよいのかも解らず・・・・・オロロ・・・。

361 :デフォルトの名無しさん:03/01/18 15:39
>>360
>アプリを実行した時点でStaticの色を白にしたいんです。
>>359

コントロールの色変更は検索すればすぐ出てくると思うけど。

362 :デフォルトの名無しさん:03/01/18 18:36
WM_CTLCOLORSTATIC

363 :デフォルトの名無しさん:03/01/18 19:57
>>360
単純にやるならダイアログクラスのWM_CTLCOLORでウィンドウのポインタ比較して
変えたい色のブラシハンドルを返す。

364 :デフォルトの名無しさん:03/01/19 17:17
VC++って、初めは色1つ変えるのにも苦労するよな。
それまでずっとVB派だった漏れは、かなり苦労した憶えが(´д⊂)

まぁ、色変更とか、一般的な処理に関しては
検索すればすぐに見つかるし、あっさり解決したけど。

365 :デフォルトの名無しさん:03/01/19 22:37
>>364
特にボタンがなー。
オーナードロー?あーん?なんだそりゃって感じだったよ。

366 :デフォルトの名無しさん:03/01/20 03:32
>365
プッシュボタンの文字の色ぐらい簡単に変えられるようにして欲しかった。

367 :デフォルトの名無しさん:03/01/20 18:04
オナドローハアハア(^o^)                          
                                  

368 :デフォルトの名無しさん:03/01/21 11:20
オナドール(;´Д`)ハァハァ

369 :デフォルトの名無しさん:03/01/21 23:31
マウスをダブルクリックしたらキーボードのENDを押したことにするような
処理はどうすれば良いのでしょう?
例えばIEを使ってる最中にダブルクリックしたらEND押したことに
なるような感じです。
お願いします。

370 :デフォルトの名無しさん:03/01/21 23:55
CSplitterWndで横3つに分割してウインドウのサイズを変更したとき、
通常は一番右のビューのサイズが変更されますが、
真ん中のビューのサイズが変わるようにするにはどうすれば良いですか?

┌┬┬┐→┌┬─┬┐
└┴┴┘  └┴─┴┘
こんな感じに。

371 :デフォルトの名無しさん:03/01/22 00:20
>>370
WM_SIZE捕まえて自力でサイズ調整。

372 :デフォルトの名無しさん:03/01/22 00:26
>>369
ダブルクリックのコマンコを受け取って処理すれば良いだけでは?

373 :デフォルトの名無しさん:03/01/22 00:32
>>372
ENDボタンを押したことにする、という関数はどんなのなのでしょうか?
検索してもそれらしいのを発見できなかったので質問しました。
初心者用のVCの本を読んだ程度の知識しかないです。。
何か関数名か何か、検索のヒントとなる単語でも良いのでお願いします。

374 :デフォルトの名無しさん:03/01/22 00:34
>>373
元がどういう構成かわからないんでなんとも言えないけど
ダイアログならOnOKなりEndDialogなり呼べば良いし、SDIやMDIなら
メインのウィンドウに対してSendMessage(WM_CLOSE)とかで行けないかな?

375 :デフォルトの名無しさん:03/01/22 00:35
>>373
ENDボタンを押した時に呼ばれる関数を呼べば(ry

376 :デフォルトの名無しさん:03/01/22 00:35
つーかコマンコって何よ俺・・・(´Д`;)

377 :370:03/01/22 00:36
>>371
CMainFrame::OnSize() でやろうとしたのですが、
CSplitterWnd は CMainFrame に直接埋め込んでいて、
CMainFrame が作られてすぐに OnSize() が呼び出されたときには
CSplitterWnd はまだ Create されていないために
CSplitterWnd::Get(Set)ColumnInfo() を呼び出した時点で落ちるという状態です。
(分かりにくい説明ですみません)

方法としては CSplitterWnd をポインタとして埋め込んで OnCreate() で作成、
OnSize() の中で if(m_pSplitter != NULL) として回避するくらいしか思いつきませんが、
直接埋め込んだ状態で何とかする方法はないでしょうか?

378 :デフォルトの名無しさん:03/01/22 00:36
コマンコ(;´Д`)ハァハァ

379 :デフォルトの名無しさん:03/01/22 00:38
>>377
それはフラグなり何なりで回避できそうな気が。

380 :デフォルトの名無しさん:03/01/22 00:45
>>374-375
どうもありがとう!
検索してみます。

381 :デフォルトの名無しさん:03/01/22 00:45
>>377
::IsWindow(m_pSplitter->m_hWnd)
これを使おう。

コマンコ(;´Д`)ハァハァ

382 :370:03/01/22 01:01
>>379
Create した時点で bCreated = TRUE のようにする方法ですね。
確かにそれだと出来そうですが、イレギュラーな気がしていたので
もっとスマートな方法が無いかなと思って聞いてみた次第です。
>377 も含めて最初から書いておくべきでしたね。すみません。

>>381
その関数は知りませんでした。まだ試してませんがいけそうな気がします。
ありがとうございました。

383 :デフォルトの名無しさん:03/01/22 01:13
CScrollViewを使用しているのですが、GetScrollPos等で得られる値が32767までしか得られません。(それ以上は0に戻ってしまう)
それ以上(例えば100000等)の範囲の場合は自分で管理するしかないのでしょうか。

Windows2000, VC6SP5

384 :370:03/01/22 01:23
たびたびすみません。
OnSize() は CreateStatic() のすぐあとに呼ばれていたことが分かりました。
そのため CSplitterWnd::GetColumnInfo() で
まだ作られていない列を指定したせいで落ちていたみたいです。

m_wndSplitter.CreateStatic(this, 1, 3);
// ここで呼ばれる
m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CLeftView), CSize(180, 0), pContext);

これだとフラグを立てるしか方法はないでしょうね。
フラグの置き場所が非常に悩むところですが、なんとかやってみます。
皆さんありがとうございました。

385 :373:03/01/22 01:25
あっ・・・、ENDボタンってキーボードのENDボタンです。。
ウインドウ右上の×ボタンじゃないです。。

いつもはシステムトレイに潜んでて、IEとか見てる時に、
マウスでダブルクリックするとキーボードのENDボタンとか
PageDownとか押した事にするやつを作ってみたいと思ってます。
こういうのはどんな関数とか使えば良いのでしょう?
お願いします。

386 :デフォルトの名無しさん:03/01/22 01:39
コマンコ 8010件
http://www.google.com/search?q=%83R%83%7D%83%93%83R&hl=ja&lr=

387 :デフォルトの名無しさん:03/01/22 01:41
>>384
フラグ以外にも方法はあるぞ。
行・列の総数から判断したらどうよ。


388 :デフォルトの名無しさん:03/01/22 01:46
>>381
>::IsWindow(m_pSplitter->m_hWnd)

ヌヒよ、ここはMFCスレらしく
m_pSplitter->GetSafeHwnd()
だな。

ただヌヒよ、わざわざポインタにしなくても
m_wndSplitter.GetSafeHwnd()
でOKだが。

389 :hh:03/01/22 01:46
★あなたのお悩み解決致します!!
◎浮気素行調査
彼氏、彼女、妻、夫の浮気を調査致します!!
◎盗聴器盗撮機発見
あなたの部屋に誰かが仕掛けているかも!!
◎行方調査
行方不明になっている家族の消息を調査致します!!
◎電話番号から住所割り出し
一般電話、携帯から住所を割り出し致します!!
◎ストーカー対策
社会問題ともなっているストーカーを撃退致します!!
その他人生相談からどんなお悩みでも解決いたします!!
 24時間受付  090−8505−3086
URL  http://www.h5.dion.ne.jp/~grobal/
メール  hentaimtt@k9.dion.ne.jp
   グローバル探偵事務局 



390 :デフォルトの名無しさん:03/01/22 01:56
MFCでDLLを作り、そのDLL内の関数を別アプリから使用します。
その時にDLLからアプリにメッセージを送るにはどうすればいいんでしょうか?
よろしくお願いします。

391 :デフォルトの名無しさん:03/01/22 02:00
>>390
APIのSendMessageつかえば。

392 :370:03/01/22 02:12
>>387
VC6 ヘルプより
> 分割ウィンドウの現在の列数を返します。静的分割ウィンドウでは、この値は列の最大値でもあります。
とあるので、ペインが作られているかいないかに関わらず同じ値が返ります。
CSplitterWnd::GetPane() などで NULL でも返ってくれれば楽なんですが、案の定落ちました。

393 :370:03/01/22 02:13
>>392
× VC6 ヘルプ
○ MSDN ライブラリ


394 :390:03/01/22 02:21
質問の追加なんですが、DLLからメッセージを送り
アプリ側のある関数を呼び出したい時はどうすればいいんでしょうか?
よろしくお願いします。

395 :デフォルトの名無しさん:03/01/22 02:27
>>394
アプリ側の関数を呼び出すメッセージをDLLから送る。
メッセージはユーザー定義メッセージな。

396 :デフォルトの名無しさん:03/01/22 02:29
>>392
悪い、性的分割ウィンドウだったか。
動的とまちがえてた。

397 :名無し@沢村:03/01/22 02:30
>>392
ヌヒにいいことを教えてやろう。
CSplitterWndの派生クラスを作ってGetPane()を以下のようにしたらお望みの動作になるぞ。

CWnd* CMySplitterWnd::GetPane(int row, int col) const
{
    ASSERT_VALID(this);

    CWnd* pView = GetDlgItem(IdFromRowCol(row, col));
    //ASSERT(pView != NULL); // panes can be a CWnd, but are usually CViews
    return pView;
}

398 :デフォルトの名無しさん:03/01/22 02:43
性的分割ウィンドウ……

399 :デフォルトの名無しさん:03/01/22 03:24
>>398
変な意味に捉えているようだが、男女で分けるってだけのことだ。

400 :デフォルトの名無しさん:03/01/22 23:48
DLL内の関数で処理している文字列変数を、DLLを利用しているプログラム自体に渡すにはどうすればいいんでしょうか?

401 :デフォルトの名無しさん:03/01/22 23:51
めもりまっぷど(ry

402 :デフォルトの名無しさん:03/01/23 00:09
学校で動いてたソースを自宅にそのまま持ってきたのに動かないことってあるんでしょうか。

CEdit& ED = GetEditCtrl( );
LPTSTR testline = linedata.GetBuffer(1024);
 for(i=0;i<=ED.GetLineCount()-1;i++){
 ED.GetLine(i,testline);
}
これでエディタ上(?)の文字列取得出来ていたのに自宅でビルドし直したとたん出来なくなりました。
くだらない質問ですがお手上げ状態です。どなたがアドバイスをおながいします。。

403 :デフォルトの名無しさん:03/01/23 00:27
>>400
strcpy()

404 :デフォルトの名無しさん:03/01/23 00:30
*(WORD *)testline = 1024;
ED.GetLine(i,testline);

405 :名無し@沢村:03/01/23 00:38
>>402
ヌヒよ、そのコードは結局は最終行しか取得しないわけだから、以下のようにすべきだな。

CEdit& ED = GetEditCtrl();
TCHAR buf[1024];
ASSERT(ED.GetLineCount() > 0);
ED.GetLine(ED.GetLineCount() - 1, buf, sizeof(buf) / sizeof(TCHAR));

406 :デフォルトの名無しさん:03/01/23 00:46
>>402
リビルドしてもダメかい

>>404
君は何がしたいんだい

407 :デフォルトの名無しさん:03/01/23 01:01
402です。>>405沢村さんのコードで無事動作しました。ホントありがとうございました!
しかしなぜ最終行しか取得してないとおわかりになったのでしょう?

>>404 アドバイスありがとうございます。
>>406 ダメでした。わけわかりません。VCのバージョンとか同じなんですけども・・


408 :400:03/01/23 01:01
メッセージマップで調べてみたんですがよく分かりません。
まずは、RegisterWindowMessageで独自のメッセージを登録すればいいんでしょうか?
よろしくお願いします。


409 :名無し@沢村:03/01/23 01:01
>>406
ヌヒよ、君に特別に教授してあげよう。

>404のコードは
ED.GetLine(i, testline, 1024);
と同じ意味だ。

まあ、人をバカにする前にMSDN嫁ってこった。はっはっは。

410 :デフォルトの名無しさん:03/01/23 01:56
>>408
どうしてメッセージマップに行くのか良くわからん……
>>401読んだ?

411 :デフォルトの名無しさん:03/01/23 01:57
独自メッセージをDLLからアプリに飛ばしてメッセージのパラメータに文字列を渡すつもりじゃ

412 :デフォルトの名無しさん:03/01/23 02:05
RegisterWindowMessageってアプリ間でメッセージやり取りするときに使うんじゃなかったっけ。

DLLからアプリにメッセージ投げれば済む話では?
WM_APPとかWM_USERとかそのあたりがキーワードになりそうな予感。
複数アプリでDLLの文字列を共有したいならメモリマップドファイル使うんだろうけど。

とりあえず疑問丸投げじゃなくて自分でどこまでやった(調べた)のか書いて欲しいと思った。

413 :400:03/01/23 02:51
説明不足で申し訳ないです。

現在DLL側で
UINT intMessage=RegisterWindowMessage("WM_SOCKMESSAGE");
SendMessage(HWND_BROADCAST,intMessage,0,0);
とし、
アプリ側で
BEGIN_MESSAGE_MAP(CxxxDlg, CDialog)
//{{AFX_MSG_MAP(CChatDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
ON_BN_CLICKED(IDC_BUTTON3, OnButton3)
ON_MESSAGE(WM_SOCKMESSAGE,OnSockMessage)←ここを追加
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
メッセージハンドラ
void CChatDlg::OnSockMessage()
{
AfxMessageBox("Message OK!!");
}
としています。

メッセージを投げるというのはPostMessage()を使うってことでしょうか?
その場合、第一引数はどうすればいいんでしょうか?(アプリのハンドルの取得方法)
この辺りが混乱しています。
よろしくお願いします。


414 :レゴ其の一:03/01/23 03:07
#include <iostream.h>
#include<stdio.h>

void main()
{
FILE *fp;
fp=fopen("素数−実行結果.txt","a");
int i, j ,f,n=1000,c=0;
// 1から1000までの数の素数を求める
// i, jはループ変数
// fは一回でも割り切れたら1。
// 一度も割り切れなかったら0。
for(i = 2; i <= n; i++) // i(==2,3,4,..,1000)について調べる。
{
f = 0;
for(j = 2; j < i; j++) // j(==2,3,...,i)で割ってみる。
{
if(i % j == 0) // あるjで割り切れたらfは1。
f = 1;


415 :レゴ其の二:03/01/23 03:08
}
if(f == 0){// iを割り切るjがなかった場合
cout << i << "は素数です。" << endl;
c++;
}
}
printf("%d個です。",c);
}

素数を表示するプログラムなんですが、
実行結果をテキストファイルに出力するにはどうしたら良いですか?
教えて下さい。御願いします。
ちなみに、コレを実行しても、作成されたテキストファイルは白紙になってしまいます。


416 :デフォルトの名無しさん:03/01/23 03:18
>>414-415
MFC関係ないな。

とりあえずこの状態でファイルにも書きたかったら fprintf 使え。
あと、fopenしたファイルはfcloseで閉じろ。

417 :デフォルトの名無しさん:03/01/23 03:21
>>413
SendMessageまで使えているのならなぜ第3/第4引数を0のままにしておく?
そこを使えば済む話だと思うのだが。

というか、そのコードは根本的に何かが違う……

418 :デフォルトの名無しさん:03/01/23 03:25
マルチポストなのでIP抜いて通報しますた

419 :レゴ:03/01/23 03:44
MFC関係なくてすいません。
MFC自体知らないんで、すみません。
こっちは、もしかしたら、場違いかもしれないと思い。
移動してみた所、マルチポストと勘違いされたみたいでした。
迷惑掛けてすみません。

fprintfを使おうと思ったんですが、エラーがいっぱい出て分かりませんでした。
fopenとfcloseは、どんな関係なんですか?
もしかして、その間のプログラムがファイルに出力されるんですか?


420 :レゴ:03/01/23 03:47
fprintfの使い方としては、どんな使い方をすれば、
実行結果をテキストに出力出来ますかね?

421 :デフォルトの名無しさん:03/01/23 03:48
>>419
プロcなんて知らんが、男が社会の窓を開けたら閉めるのと同じじゃないのか?
閉めないと恥ずかしいだろ?

422 :レゴ:03/01/23 03:50
そうですね。
やってみます。

423 :レゴ:03/01/23 03:54
FILE *fp,*fc;
fp=fopen("素数−実行結果.txt","w");
int i, j ,f,n=1000,c=0;
// 1から1000までの数の素数を求める
// i, jはループ変数
// fは一回でも割り切れたら1。
// 一度も割り切れなかったら0。
for(i = 2; i <= n; i++) // i(==2,3,4,..,1000)について調べる。
{
f = 0;
for(j = 2; j < i; j++) // j(==2,3,...,i)で割ってみる。
{
if(i % j == 0) // あるjで割り切れたらfは1。
f = 1;
}
if(f == 0){// iを割り切るjがなかった場合
cout << i << "は素数です。" << endl;
c++;
}
}
printf("%d個です。",c);
fc=fclose("素数−実行結果.txt","w");

424 :デフォルトの名無しさん:03/01/23 03:56
>>423
ちみ面白いよ

425 :レゴ:03/01/23 03:57
と書き換えたんですが、fcloseでエラーが出てしまいました。
エラーが出ない様にするには、どうすれば良いですか?


426 :レゴ:03/01/23 04:00
C言語なら私に聞いてYO! 49
に移動します。
失礼しました。

427 :山崎渉:03/01/23 20:01
(^^)

428 :デフォルトの名無しさん:03/01/24 09:03
メニューの1部分のポップアップメニューをメニューの変わりに、
ダイアログを表示したいです。
Cmenuを継承したクラスを作ればできるのかもしれませんが、ちょっとわかりません。
Wordの下線の色を選択するメニューのようなことをしたいので、
ダイアログ使えないのであれば、別な方法でもよいのでやりかた分かる方、
ご教授お願いします。



429 :デフォルトの名無しさん:03/01/24 09:47
>>428
オーナードローで書くのかな?
DrawItemとMeasureItemをオーバーライドして……

430 :デフォルトの名無しさん:03/01/24 13:41
>>428
http://www.codeproject.com/miscctrl/colour_picker.asp

431 :428:03/01/24 17:36
>>430
これはできてるんです、、、。




432 :デフォルトの名無しさん:03/01/25 00:04
あるメニューを押したら特定のダイアログを表示するとかそういう単純な問題ではないわけね?

433 :デフォルトの名無しさん:03/01/25 00:52
>>428
WM_INITMENU(だったけな?)

434 :デフォルトの名無しさん:03/01/25 00:53
もしくは、
WM_INITMENUPOPUP

435 :デフォルトの名無しさん:03/01/25 04:27
MCIWndCreateでmpegを再生中にマウスイベントを拾う方法を教えてください。
左クリックでデモムービー停止させたいのです。

436 :デフォルトの名無しさん:03/01/25 05:10
■ VisualC++(MFC限定)相談室 MFC6.dll■
         ~~~~~~~~~

437 :435:03/01/25 20:01
すいません。SDK限定的な回答を避けようと思っただけですけど。
やっぱり、範囲外ですね。失礼しました。

438 :デフォルトの名無しさん:03/01/25 22:11
質問です。
まず、あるエディットボックスにDDXの変数を関連づけました(ed)。
そしてとあるスレッドをCreateThreadで作りました。
スレッドの引数にviewへのポインタを渡して、
内部でview->ed="hoge"とかやって、view->UpdateData(false)をすると落ちてしまいます。
なにがいけないんでしょうか?

439 :デフォルトの名無しさん:03/01/25 22:15
DWORD WINAPI th_func(CMyView* view){
  view->ed="hoge";
  view->UpdateData(false);
}
void CMyView::OnButton(){
  CreateThread(NULL,0,th_func,(LPVOID)this,0,NULL);
}

こんな感じです。

440 :デフォルトの名無しさん:03/01/25 22:35
VC++でDLLファイルを作って、VB6で動かしたいんですが、やり方が
全く解りません。
そこで、
「VBのフォームにコマンドボタンを一つ付けて、
コマンドボタンを押したらDLLファイルから読み込んだ
1+1=2という計算をさせて、フォームに表示させる」
ということをしてみたいです。

何方かご教授をお願いします。

441 :デフォルトの名無しさん:03/01/25 22:42
>>440
どこがわからないのかまず書け。

1. VC++ での DLL の作り方。
2. VB のフォーム/コマンドボタンの作り方。
3. VB での DLL の呼び出し方。
4. VB でのフォームへの表示の仕方。

442 :デフォルトの名無しさん:03/01/25 22:44
全部わかりません。1から順番に教えてください。

443 :440:03/01/25 22:45
>>441
有難うございます。
上記の「1、3」がわかりません。
よろしくお願いします。
一応yahooで検索はしたんですが・・・何も得られずという感じです。

444 :デフォルトの名無しさん:03/01/25 23:35
>>442
お前には一生無理だから、あきらめて寝ろ。

>>443
まず、3 からやれ。
yahoo/google するなり、本屋/図書館 にでも行けば、VB から API (=xxxx.dll) を呼び出している例はいくらでもあるから、まずそっちをきちんと覚えること。

【要注意】
.dll 呼び出しでは、Visual Basic の多くのチェック機構が働かない。
プログラムを組んだら、まず「実行」すると痛い目にあうことが多い。
(VB 自体が異常終了することがある。)
実行の前に、必ず「保存」すること。
ツール(T) - オプション(O) の 環境 タブで、プログラムの実行時に 変更点を保存 にしておくといいぞ。

445 :デフォルトの名無しさん:03/01/25 23:36
>>443
ちなみに2〜4はスレ違い。

446 :デフォルトの名無しさん:03/01/26 00:50
>>438 439
・MFCでは CreateThreadじゃなく AfxBeginThread 使う
・別スレッドに CWndオブジェクトの this を渡すと、ろくなことがない

447 :デフォルトの名無しさん:03/01/26 10:11
wave再生なんかでもあるスレッドでwaveオープンして再生して別のスレッドで
クローズしたりするとおかしくなるもんなあ・・・・。

448 :デフォルトの名無しさん:03/01/26 11:32
>>447
いやそれはなにか根本的に違うような。

449 :438:03/01/26 19:38
どうもありがとうございました。
MFCは、標準のCやC++と違う機能がいっぱいで、
どこに落とし穴があるかわかんないので怖いですね。
以前もファイルを扱うとき、シリアライズを使わず
FILE*とfwrite()、fread()という旧来の方法でやってたら
おかしくなったりしたことがありましたし。

450 :デフォルトの名無しさん:03/01/26 20:01
>>449
それも何か違うような。

451 :デフォルトの名無しさん:03/01/26 20:47
いまだにfopen、fcloseしか使えませんが何か?

452 :デフォルトの名無しさん:03/01/26 22:10
>>451
それじゃ何もできんだろ。(空ファイルを作ることぐらいはできるか...。(w )

453 :デフォルトの名無しさん:03/01/28 00:25
Window に投げられたメッセージを取得するにはどうやるのが一番いいのでしょうか。
MFC を使わなければ WndProc で Message と wParam と lParam が簡単に調べられるのですが、
MFC を使ったときにその 3 つを取得する方法が分かりません。
基本的な事だとは思うのですがよろしくお願いします。

454 :デフォルトの名無しさん:03/01/28 00:36
>>453
メッセージの処理中に、GetCurrentMessage()。
が、余程のことがなければMFCアプリで直接生のMSGを触らねば
ならんような事態は、避ける設計にすべきだと思うが。

455 :デフォルトの名無しさん:03/01/28 00:46
>>454
なるほど。
ON_COMMAND や ON_NOTIFY みたいに、メッセージを捕まえた上で
wParam と lParam と共に指定の関数を呼び出すといったことは出来ないのでしょうか。

456 :デフォルトの名無しさん:03/01/28 00:51
それならそのものズバリの ON_MESSAGE というマクロが。

457 :453=455:03/01/28 00:56
>>456
ああぁ、ズバリそれのことです。
ON_NOTIFY でなんとかならないかということばかり考えていました。
どうもありがとうございました。

458 :デフォルトの名無しさん:03/01/28 01:09
SDK風に書きたいのなら、CWnd::WindowProcをオーバーライドするとよし。

116 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)