■過去ログ置き場に戻る■ 1- 前250 次250 最新50


[memo] "9999999999_00.html#R20" という感じで、URLの最後に "#RレスNo" を追加すると幸せになれます。

VisualC++ 相談室【9】
501 名前:デフォルトの名無しさん :03/01/14 01:25
ようわからんけど、Windows API で使われる型のチェックを厳格にするという事?

502 名前:デフォルトの名無しさん :03/01/14 02:31
パターン認識のスレで叩かれた1です
http://pc3.2ch.net/test/read.cgi/tech/1042478334/

VCで窓を作って、その中にユーザーがマウスでかきこみ、窓全体の情報を0,1情報で得る方法ってありませんか?


503 名前:デフォルトの名無しさん :03/01/14 02:34
>>502
VCのサンプルにあるがな。

504 名前:デフォルトの名無しさん :03/01/14 02:37
>>501
STRICTしないとHANDLEとかHBRUSHとかって全部void*扱いだったと思う
これをそれぞれ typedef struct __HANDLE {} *HANDLE;
とかして別々の型に見せるのがSTRICTの効果。

>>503
神降臨!!!

505 名前:デフォルトの名無しさん :03/01/14 02:43
>>502
何で叩かれたか理解したら、ちゃんと削除依頼だそうな。

506 名前:421 :03/01/14 11:42
リソースの Version 情報(VS_VERSION_INFO)に
親の(?)ブロック(FILEVERSION などが書かれている)に、さらに
日本語のブロックも追加しました。

ところで、日本語のブロックの「FileVersion」を変更しても、
親の FILEVERSION には反映されないわけですが、
そしたら 日本語のブロックの「FileVersion」は、
ビルドした EXEファイルの「プロパティ」表示などしたときに
表示できるようにできるんでしょうか?

EXEファイルの「プロパティ」では、製品バージョン・ファイルバージョンとも
親の FILEVERSION, PRODUCTVERSION が表示されるのに、
LegalTrademarks とかは日本語ブロックのが表示される ((((゚Д゚))))ガクガクブルブル
納得しがたいです。 ('・ω・`) しょぼん



507 名前:502 :03/01/14 16:34
>>503
 どのサンプルですか?

508 名前:デフォルトの名無しさん :03/01/14 16:46
using namespace std;

Visual C++6.0で↑のように記述するとよく
『存在しないか名前空間ではありません』
と出るのですが、どうすればこのエラーを回避することが出来るでしょうか?

509 名前: :03/01/14 16:57
CListCtrl クラスを使っています。
選択行が変わった時に処理を加えたいのですけど
どういうメッセージをキャッチすればいいですかね?

OnSelChange()みたいなのあればいいんですけどないですよね?

510 名前:デフォルトの名無しさん :03/01/14 17:16
>>509
LVN_ITEMCHANGEDをキャッチできなかったっけ

511 名前: :03/01/14 18:17
>>510 ありがと〜

512 名前:デフォルトの名無しさん :03/01/14 18:45
>>508
不要な場合にそう書かない。

513 名前:デフォルトの名無しさん :03/01/14 21:35
>>508

0x200の言うとおり
stdを何に使う気だったのか,「それ」をどこで#includeしたのかと3.6`秒ほど問い詰めたい

514 名前:デフォルトの名無しさん :03/01/15 00:03
>>507
何で叩かれたか理解したら、ちゃんと削除依頼だそうな。

515 名前:デフォルトの名無しさん :03/01/15 06:28
リソースエディタでメニューをつくるときに
項目の左にチェックがつけられるんですが、
アプリケーション上でこのチェックをつけたり消したり
するにはどうすればいいんでしょうか?SDKです。

516 名前:デフォルトの名無しさん :03/01/15 08:37
>>515
メニューってポップアップメニューのこと?
だったら、「SetMenuItemInfo」で出来んか?

517 名前:デフォルトの名無しさん :03/01/15 12:50
IrivineみたいにIEのツールバーにアプリを登録するにはどうしたらいいんですか?

518 名前:デフォルトの名無しさん :03/01/15 16:18
>>517
こんな感じ。
http://www.codeguru.com/ieprogram/band.shtml

519 名前:デフォルトの名無しさん :03/01/15 16:43
>>518
IDeskBandですな。サンクス。

520 名前:山崎渉 :03/01/15 17:43
(^^)

521 名前:デフォルトの名無しさん :03/01/16 00:23
仮想関数の質問なんですが、VC7.0で
class A
{
public:
A(){APure();};
virtual ~A(){};
virtual int APure() = 0;
};
class B : public A
{
virtual int APure();
};
というコードを書くとリンクえらがでます。
error LNK2019: 未解決の外部シンボル "public: virtual int __thiscall A::APure(void)" (?APure@A@@UAEHXZ) が関数 "public: __thiscall A::A(void)" (??0A@@QAE@XZ) で参照されました。
なんで?

522 名前:デフォルトの名無しさん :03/01/16 00:54
>>521
仮想関数テーブルはコンストラクタで構築されるんで、
A::A()でAPure()を呼んだときはまだA::APure()を参照してる。
で、APure()が純粋なのでアラー。

523 名前:デフォルトの名無しさん :03/01/16 00:59
>>522
サンキュー。
でも、:のところでやっといてほしいなぁ。
使用なの?

524 名前:デフォルトの名無しさん :03/01/16 01:00
ダイアログのピクチャーボックスに描かれた絵をウインドウを閉じたり、縮小しても消えないようにしたいです。BITMAPINFOHEADERやStretchDIBitsを使えばいいのかなとおもうのですけど、やり方がいまいちわかりません・・教えてください//。
私が足したプログラムは次のだけです。
void CMy00000View::OnButton1()
{
// TODO: この位置にコントロール通知ハンドラ用のコードを追加してください

int x, y;

CWnd* h = GetDlgItem(IDC_FIGURE);
CRect r;
h->GetClientRect(r);
CDC* pDC=h->GetDC();
x = r.right/2;
y = r.bottom/2;
CPen p(PS_SOLID, 1, RGB(255, 255, 0));
CPen* oldp=pDC->SelectObject(&p);
pDC->MoveTo(0, y); pDC->LineTo(2*x, y);
pDC->MoveTo(x,0); pDC->LineTo(x, 2*y);
pDC->SelectObject(oldp);
h->ReleaseDC(pDC);


525 名前:デフォルトの名無しさん :03/01/16 01:16
>>523
仕様。

526 名前:デフォルトの名無しさん :03/01/16 08:08
どうしよう

527 名前:デフォルトの名無しさん :03/01/16 08:29
もないだろ。

528 名前:デフォルトの名無しさん :03/01/16 09:37
>>524
OnPaint でやってミソ

529 名前:524 :03/01/16 10:06
ボタンを押した時に描画した画が、
フォームを最小化したり、他のウインドウが重なったりした時
消えてしまうのを解決したいです
CMy00000Viewクラスへ「WM_PAINT」のWindowsメッセージハンドラの追加はしました
OnPaintにOnButton1()の同じ処理を書きました
確かにできたんですが、まだ
大きなプログラムだと処理が遅く、ウィンドウを大きくしたら消える、少し動かさないと絵がでてこない
という問題がありました・・
それはどうすればよろしいでしょうか?



530 名前:524 :03/01/16 10:09
http://netpassport-wc.netpassport.or.jp/~whiromo/OS2/program.html
このページがヒントのなるかと思ったのですがよくわからかったです・・

531 名前:デフォルトの名無しさん :03/01/16 10:57
>>529
マルチポスト氏ね

532 名前:デフォルトの名無しさん :03/01/16 11:05
>>529
じゃぁ OnDraw とかでもやってみれ。
というか、まず、どのメッセージで何をすればいいかを考えれ。
MFCがどういうことやってるか調べれば、これ以上ないくらいのサンプルになる。

ついでにマルチポスト稲

533 名前:509 :03/01/16 11:21
度々スイマセン。

CListCtrlで SetCurSel や Scroll をいくらやってもダメなんですけど、
これらが有効にならない原因がわかる方いらっしゃますか?

534 名前:デフォルトの名無しさん :03/01/16 11:50
>>553
ダメって何が?

535 名前:デフォルトの名無しさん :03/01/16 12:16
VC6でCOM使ったクラスを作ってますが、
CoInitialize() の戻り値が S_FALSE の場合でも CoUninitialize() が必要ですか?

コンストラクタで CoInitialize() して、
デストラクタで CoUninitialize() したいのですが、クラスを複数作った場合がわからないので。

どなたかご教授お願いします。

536 名前:デフォルトの名無しさん :03/01/16 12:30
参照カウントを考えれば自明だと…

537 名前:509 :03/01/16 12:33
>>534

SetCurSel やっても値は正常に返ってくるが
実際のCListCtrlには反映されないのですよ・・・Scrollも同じ。

データのある程度たまっているCListCtrlで、或る瞬間にある行へ
選択を移動させたいわけですよ。なので SetCurSel で選択状態にし
Scrollでその行まで飛べばいいかと思ったのですが・・・


538 名前:デフォルトの名無しさん :03/01/16 12:42
>529
>少し動かさないと絵がでてこない
絵を出したいタイミングがあるなら、そこで
InvalidateRect(NULL);
をしる。
OSに再描画を促すので、結果としてWM_PAINTが送られる。


539 名前:535 :03/01/16 12:49
>>536
CoInitialize() にも参照カウントあるのですか?
てっきり AddRef() Release() だけかと思ってました。

どうもありがとうございました。

540 名前:デフォルトの名無しさん :03/01/16 14:06
VS6からVS.NETに移行したんですが、Profileって取れなくなったんですか?
メニューにも無いんですが・・・
関数の呼び出し回数とか時間が出てとても重宝してたんですが。


541 名前:デフォルトの名無しさん :03/01/16 14:09
VS?

542 名前:デフォルトの名無しさん :03/01/16 14:12
同じ質問どっかで見たな。MLだったかな。どっかのスレだったかな。<プロファイル

543 名前:デフォルトの名無しさん :03/01/16 17:15
BSTR を std::basic_string と組み合わせて使おうと思ったんだけど、
いろいろ考えていたら、頭パニックになった。

ひょっとして basic_string って 長さをプレフィックスにとる
文字列と相性悪いんだろうか。

544 名前:デフォルトの名無しさん :03/01/16 21:02
>>541
Visual Script

545 名前:WMI :03/01/16 22:31
板違いならすいません。
WMI(Windows Management Instrumentation)のオリジナルのプロパイダ
(ダイナミックDLL)を作ろうと思うのですが、どなたご存知の方いましたらご教授
おねがいします。

546 名前:デフォルトの名無しさん :03/01/17 16:22
>>545
ダイナミックDLLとはなんですか?

547 名前:デフォルトの名無しさん :03/01/17 16:39
ワラタ

548 名前:デフォルトの名無しさん :03/01/17 16:43
>>546
DDLLって事かな?
しかしこんなことに気づかんとは。
俺もまだまだ甘いな。

549 名前:デフォルトの名無しさん :03/01/17 16:49
mfc-MLに投稿したよりも質問内容をかなりはしょってるな

550 名前:デフォルトの名無しさん :03/01/18 00:31
ドライブレターを指定して、そのドライブのデバイス名を得る方法はありませんかねぇ。

551 名前:デフォルトの名無しさん :03/01/18 02:28
デバイス名って?

552 名前:デフォルトの名無しさん :03/01/18 15:33
>>551
ボリュームラベルのことだろうか・・・?

553 名前:デフォルトの名無しさん :03/01/18 16:26
>>551-552
\Device\HarddiskVolume1 とかのことだろ。

>>550
DWORD QueryDosDevice(
 LPCTSTR lpDeviceName, // pointer to MS-DOS device name string
 LPTSTR lpTargetPath,   // pointer to buffer for storing query results
 DWORD ucchMax      // maximum storage capacity of buffer
);

554 名前:デフォルトの名無しさん :03/01/21 10:00
コンソールアプリで "**% 解凍中"の**の字だけをインクリメントしていくには
どうしたらよいのでしょうか。

putcとかでは駄目だし。

555 名前:デフォルトの名無しさん :03/01/21 10:19
その都度同じ場所に”**% 解凍中”って出す。

556 名前:デフォルトの名無しさん :03/01/21 11:10
"**% 回答厨\r"

557 名前:デフォルトの名無しさん :03/01/21 11:14
初心者スレから誘導されてきました。
C#からC++へ移行してきたものです。

C++のIntelliSenseにはメンバの詳細を表示する機能が無いのでしょうか?
教えてください。



>>554
改行しないでキャリッジリターンってのはどうでしょうか

printf("解凍します\r\n");
for(int i=0; i<101; i++){
  printf(" 現在 %3d%% 解凍中 \r",i);
}
printf("\n");
printf("解凍しました\r\n");

558 名前:デフォルトの名無しさん :03/01/21 22:21
>>557
>C++のIntelliSense

語弊満載だな。

559 名前:557 :03/01/22 08:31
>>558
ここは相談スレだろ。
ツッコミだけ厨には用はないですから。


IntelliSenseがVC++で詳細をださないのは
VC++が扱うライブラリに詳細が記述されてないからですか?
それともVC++には詳細を表示する機能はついてないのですか?
もし後者なら
[ツール]-[オプション]-[テキストエディタ]-[C/C++]-[全般]-[入力候補]の[自動メンバ表示(A)]の
[メンバの詳細を非表示]のチェックボックスがVC#やVBなどでは設定できるのにC++では設定できないのはその為かな

C#から呼び出した.Net Frameworkでは詳細が表示されるのに
C++から呼び出した.Net Frameworkで詳細が表示されないし


なんか手抜きっぽい気がするのですが

560 名前:デフォルトの名無しさん :03/01/22 09:18
素人なんですが。

ダイアログベースのアプリケーションにチェックボックスを張ったんですが、
これがチェックされてるかどうか判断するにはどうすればいいのでしょうか?

561 名前:デフォルトの名無しさん :03/01/22 09:57
>>560
エディットしてる状態でダイアログを右クリック→ClassWizardでクラスウィザードを出します。
チェックしたいボックスのコントロールIDを選び、変数の追加ボタンを押してBOOL型の変数を作成します。
あとは作成したBOOL型変数でチェックボックスの状態を調べることができるはずです。

562 名前:デフォルトの名無しさん :03/01/22 11:21
>>560
>>561だけだと、たぶん「チェックボックスの状態が変数に反映されないよ」っていってきそうだから補足

チェックボックスの状態を変数に格納するときはUpdateData(TRUE)ね
UpdateData(TEUE):コントロール→変数
UpdateData(FALSE):変数→コントロール

チェックボックス判定の例
UpdateData(TRUE);
if(m_check1){
 ・・・・・・・
} else {
 ・・・・・・・
}

563 名前:デフォルトの名無しさん :03/01/22 14:50
チェックボクース程度なら
 ((CButton*)GetDlgItem(IDC_CHECK_XXX))->GetCheck()
でよいような気も...

564 名前:デフォルトの名無しさん :03/01/22 15:17
BOOL bChecked = IsDlgButtonChecked(IDC_CHECK_XXX)
という手もある...

565 名前:デフォルトの名無しさん :03/01/22 15:19
まぁMFC使ってるかどうかもわからんわけだしな

566 名前:山崎渉 :03/01/23 20:12
(^^)

567 名前:デフォルトの名無しさん :03/01/24 14:03
オフィスとかのヘルプでイルカがなんかしゃべるときに出てくるウインドウ
(ツールチップと同じ色のやつ)はどうやって作るんですか?

568 名前:デフォルトの名無しさん :03/01/24 14:07
SetWindowRgn()

569 名前:デフォルトの名無しさん :03/01/24 20:46
>>568
残酷だな。

570 名前:567 :03/01/25 00:47
とりあえず、speak()というAPIで出る事がわかりました。

571 名前:デフォルトの名無しさん :03/01/25 12:38
積分記号はどうやって描くのか教えてくれ。

572 名前:デフォルトの名無しさん :03/01/25 12:39
>>571


573 名前:デフォルトの名無しさん :03/01/25 15:51
>>571
インテグラル→変換→∫

574 名前:デフォルトの名無しさん :03/01/25 18:58


575 名前:デフォルトの名無しさん :03/01/25 19:35
look & feelをOfficeXPライクにするサンプルコードきぼん

576 名前:デフォルトの名無しさん :03/01/25 20:47
荒らせ http://fruit.gaiax.com/home/nappa3/main


577 名前:デフォルトの名無しさん :03/01/25 20:48
いつからかビルドをすると変更したファイルが1つだけでもフルコンされる
ようになった。何が原因の分かる方いますか?

578 名前:デフォルトの名無しさん :03/01/25 21:25
>>577
変更したファイルが、全てのソースにインクルードされてるとか。

579 名前:577 :03/01/25 21:44
>>578
原因分かりました。
PCの日付がずいぶん前にいつのまにか変更されていました(アホです)。
makefileの作成をし、nmake に -d オプションで分かりました。
お騒がせしました。


580 名前:デフォルトの顔無しさん :03/01/25 23:04
アッ ァ ァ・・

581 名前:デフォルトの名無しさん :03/01/26 01:06
こんばんは
VC++をはじめようと思っているのですが
まずどのようなことからはじめえたほうが効率的ですかね?
WEBで学習?本を買ってプログラムを書く?

皆さんはどのような方法でVC++を学習されましたか?



582 名前:デフォルトの名無しさん :03/01/26 01:17
>>581
できることから始める。
近道はない。

583 名前:デフォルトの名無しさん :03/01/26 01:21
なるほど・・
近道はないすか・・・
Perlの学習にも近道はありませんでした。
どのプログラムも同じですね(^^;

584 名前:デフォルトの名無しさん :03/01/26 08:07
>>581
まずC++を覚えろ。それができんとVC++も出来んぞ。

585 名前:デフォルトの名無しさん :03/01/26 12:43
>>581
VC++のヘルプにはちゃんとチュートリアルから言語仕様から全部載ってるから
まずはきちんと金を出して買え。

586 名前:デフォルトの名無しさん :03/01/26 13:16
windowsプログラミングを始めようかと思ってるんだけど
いまから始めるなら最初から.NETやった方が良いですかね?


587 名前:デフォルトの名無しさん :03/01/26 13:23
>>586
知るかんなもん!

588 名前:デフォルトの名無しさん :03/01/26 13:59
初心者はこんな糞スレにいないで

★初心者にVisual C++を教えるスレ★ Part3
http://pc3.2ch.net/test/read.cgi/tech/1038160750/l50

こっちへどうぞ

589 名前:デフォルトの名無しさん :03/01/27 17:42
少し前にWindows98で使っていたVisualStudio6.0をWindows2000にインストール
しようと思うのですが、MSEなど、明らかにVisualStudio6.0よりも新しい物がはいって
います。

そのままインストールしても大丈夫なのでしょうか。

590 名前:デフォルトの名無しさん :03/01/27 17:50
MSEってなんすか

591 名前:デフォルトの名無しさん :03/01/27 18:34
>>589
そんなことよりWindows2000は明らかにVisualStudio6.0よりも新しい

592 名前:デフォルトの名無しさん :03/01/28 13:34
明らかに死んで

593 名前:名無し@沢村 :03/01/29 00:03
>>590
ヌヒよ、"Microsoft Exchange Server"のことだ。

594 名前:デフォルトの名無しさん :03/01/29 20:57
倍精度の乱数(srand48等)をVC++で使いたいのですが、どこかにライブラリ
など置いてないでしょうか?

595 名前:デフォルトの名無しさん :03/01/29 22:24
http://www.math.keio.ac.jp/~matumoto/mt19937.c

596 名前:デフォルトの名無しさん :03/01/29 22:32
MSEじゃなくてMESってこと?

597 名前:デフォルトの名無しさん :03/01/29 23:50
>595
ありがとうございます。この関数でいけそうです。

598 名前:デフォルトの名無しさん :03/01/30 14:57
Windows 2000 SP3のシンボルファイルはどこでダウンロードできますか?

599 名前:デフォルトの名無しさん :03/01/31 06:26
>>598
ttp://www.microsoft.com/ddk/debugging/symbolpkg.asp#Windows%20symbol%20packages
これか?

600 名前:文字列のBitBlt :03/01/31 08:07
TextOutやDrawTextで描画した文字列をBitBltしたいのですが、できますか?


601 名前:デフォルトの名無しさん :03/01/31 08:13
>>600
できます。

602 名前:デフォルトの名無しさん :03/01/31 08:51
DialogBoxアプリのClassWizardのコントロールメンバ変数の選択で
MFCクラスを継承した自作クラスが選べませんでした。
そこで、VCが書き出したヘッダのメンバ変数定義の型をこっそり自作クラスに変えたら
上手く動いている様ですが、大丈夫でしょうか?


603 名前:デフォルトの名無しさん :03/01/31 11:01
>>602
ClassWizardは、MFCのすべてを知ってるわけじゃない。

604 名前:デフォルトの名無しさん :03/01/31 15:55
>>603
class CMyEdit : public CEdit
とか作った時、CMyEditが別プロジェクトで
ClassWizardから見えないって話でしょ。CMyEditはMFCとは違う。
直に書き換えても問題はないが、別プロジェクトでも使いまわしたりするなら
コンポーネントギャラリに登録してそっから使ったほうが楽。

605 名前:デフォルトの名無しさん :03/01/31 19:18
>>604
タンクス。
コンポーネントギャラリも調べてみます。

606 名前:デフォルトの名無しさん :03/02/02 20:03
LPCTSTRや_TCHARの「T」って何の略なんでしょうか?
LPはLong Pointer だし CはConstってのは分かるんですけど、Tが分からないです。
ご存知の方はご教授お願いします。

607 名前:デフォルトの名無しさん :03/02/02 20:30
TEXTマクロと同じ意味では

608 名前:デフォルトの名無しさん :03/02/02 20:34
>>607
微妙だな。

defineでcharにもwidecharにもあるってやつっしょ。

609 名前:デフォルトの名無しさん :03/02/02 20:40
何の略って聞いてるからTEXTのTじゃないのって意味なんだが

610 名前:606 :03/02/02 21:04
TEXTでしたか。盲点でした。

対応してくださった>607-609氏、ありがとうございました。

611 名前:デフォルトの名無しさん :03/02/02 21:25
>>606
ttp://www7.plala.or.jp/keny01/win32/01-04.html

612 名前:デフォルトの名無しさん :03/02/02 21:27
_getch()はCtl-Cは読み込まないってMSDNには書いてあるりますが、実際には
Ctl-Cも通常の文字として読み込んでしまいます。バグ?

613 名前:デフォルトの名無しさん :03/02/03 22:53
DirectX8がインストールされているマシンにDirectX7SDKを入れても大丈夫ですか

614 名前:デフォルトの名無しさん :03/02/04 00:20
>>613
だいじょうぶだいじょうぶ。

615 名前:デフォルトの名無しさん :03/02/04 20:28
>>614
嘘ばっかり言うなよー
DirectX SDKを入れる際は 当該バージョンの DirectX もインストールされるんで
確実におかしくなる
ライブラリファイルとインクルードファイルだけ抜き取って使うのが正解

616 名前:デフォルトの名無しさん :03/02/04 21:15
>>615
>確実におかしくなる

DirectX9の入ってる環境にDirectX8入れようとかしたことないの?君。

617 名前:デフォルトの名無しさん :03/02/04 21:28
つーか、そんな開発者が不安になってる開発環境で
作られたソフトをばらまくのかと小一時間。

618 名前:デフォルトの名無しさん :03/02/05 00:05
>>615
嘘ばっかり言うなよ・・・

619 名前:デフォルトの名無しさん :03/02/05 00:27
>>617
話を逸らしたと捉えて良いですか?

620 名前:デフォルトの名無しさん :03/02/05 00:36
Windowsってだけで不安たっぷり

621 名前:デフォルトの名無しさん :03/02/05 04:10
>>620
( ´,_ゝ`)プッ
ショボイ環境でプログラミングなんかするなよ

622 名前:デフォルトの名無しさん :03/02/05 16:22
エディターの背景色を替えたいんだけど、ツール→オプション→書式にある
やつだと、選べる色が少ないんだよね。
どっかレジストリとかにRGBで保存されてるなら、直接書き換えて
しまいたいんだけど誰か知りませんか。

623 名前:デフォルトの名無しさん :03/02/05 16:33
>>622
http://www.codeguru.com/tips/VisualStudioColors.shtml

624 名前:デフォルトの名無しさん :03/02/05 17:09
クソレス申し訳ないけど・・・

C言語ってC++のことですか?
優しく教えてください。w

625 名前:デフォルトの名無しさん :03/02/05 17:09
クソレス申し訳ないが・・・

C言語ってC++のことですか?

626 名前:デフォルトの名無しさん :03/02/05 18:39
C言語初心者です
自分でも勉強するために.NETを買おうかと思ってるんですが
買うとしたらVC++.NETとVisualStadio.NET(AC)どっちがお得ですかね
それと今慣れてるのはVC++6.0なんですけど.NETと使い勝手はだいぶ違いますか?
教えてくださいな

627 名前:622 :03/02/05 18:43
>>623
さんくす。
ClassView,FileViewの背景色と、アウトプットウインドウの
「ビルド」「ファイルから検索1」のタブの色は白以外に
変更できないのかな?いろいろやったけどだめだった。
ソースウインドウと同じ背景色で統一したいんですけど。

628 名前:デフォルトの名無しさん :03/02/05 19:02
>>626
>C言語初心者です
>それと今慣れてるのはVC++6.0なんですけど
って、矛盾してない・・・

VC、VC++.NETからはじめたんだけど
巷のあふれてるVC6準拠のVC入門書いろいろ買ったけど
本の通りにやったらちっとも何もできない
ウィザードの作りがVC6とまるで違うNET・・・
使い方、結局Google検索した方がわかり易い・・・
何冊も入門書買うんじゃなかった・・・
リファレンスはばんばん買うべきだけど

629 名前:デフォルトの名無しさん :03/02/05 19:16
>>626
とにかく一番高いやつを買え!

630 名前:デフォルトの名無しさん :03/02/05 19:46
クソレス申し訳ないが・・・

C#の#って不協和音のことですか?

631 名前:デフォルトの名無しさん :03/02/05 19:48
>>628
>>629
レスどうも
値段調べてみたらVS.NETが安いところだと2万円前後なので
これを買っちゃおうと思います。
VC++6.0は慣れたといってもほとんど使いこなせてはいないので
それなら新しいソフトを勉強しなおしたほうがいいかなと思ったのでした

632 名前:デフォルトの名無しさん :03/02/05 19:48
>>630
単音なら不協もへったくれも無いと思うが。


633 名前:デフォルトの名無しさん :03/02/05 19:53
>>632
ふっふっふ、読みが甘い。Cと不協和音なのだよ明智君。

634 名前:デフォルトの名無しさん :03/02/05 19:55
>>629
http://www.yodobashi.com/enjoy/i.jsp?oid=2307948
の35万の奴?買えってこと?学生に・・・

635 名前:デフォルトの名無しさん :03/02/05 19:56
>>634
そんなもんにいちいち素レスすんな

636 名前:デフォルトの名無しさん :03/02/05 21:13
>>634
投資した額が大きければ大きいほど”やらねばっ!!”と思うようになるでよ。

637 名前:デフォルトの名無しさん :03/02/05 21:53
DeveloperStudioってVisualC++.NETについてるの?
いまVisualStudio.NETアカデミックを持ってるけど・・・

638 名前:デフォルトの名無しさん :03/02/05 22:20
>>637
名のある初心者とお見受けしたがどうか?

639 名前:デフォルトの名無しさん :03/02/05 22:53
アスキーファイルを読みたいので、次のようにしたのですが読めません・・
Serialize(CArchive& ar)ですどこか間違ってますかね・・?
CFile* fp = ar.GetFile();
int i;
double *tmp;
tmp = CCC;
for ( i=0; i<IMAGEDATA_SIZE; i++, tmp++)
{
ar.ReadString( tmp, sizeof( double ) );
     }

CCCはdouble型でデータを格納する場所です
IMAGEDATA_SIZEは256*256です

データの中身は9.352675144624524e+001、こんな感じのが256*256あります
doubleでは無理ですよね・・


640 名前:639 :03/02/06 02:36
解決しました。ありがとうございました。

641 名前:デフォルトの名無しさん :03/02/06 08:15
ウィンドウを作成しないでGDCを使いたいのですが、
具体的にどうやるのでしょうか?
CreateDCで良いのですか?

642 名前:デフォルトの名無しさん :03/02/06 08:17
MFCでSDIアプリを作っているとき、
下の様にcs.Menu = NULL; とすることでメニューを消すことが出来ますが

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
  if( !CMDIFrameWnd::PreCreateWindow(cs) )
    return FALSE;
  // TODO: この位置で CREATESTRUCT cs を修正して Window クラスまたはスタイルを
  // 修正してください。
  cs.hMenu = NULL; // メニューを消す
  return TRUE;
}

MDIアプリの時に同じ事をするとエラーになってしまいます。
MDIアプリでメニューを消すにはどうしたらよいのでしょうか?

643 名前:デフォルトの名無しさん :03/02/06 10:14
アスキーファイルを読みたいので、次のようにしたのですが読めません・・
Serialize(CArchive& ar)ですどこか間違ってますかね・・?
CFile* fp = ar.GetFile();
int i;
double *tmp;
tmp = CCC;
for ( i=0; i<IMAGEDATA_SIZE; i++, tmp++)
{
ar.Read( tmp, sizeof( double ) );
     }

CCCはdouble型でデータを格納する場所です
IMAGEDATA_SIZEは256*256です

データの中身は9.352675144624524e+001、こんな感じのが256*256あります
doubleでは無理ですよね・・


644 名前:642 :03/02/06 11:01
>>642
×下の様にcs.Menu = NULL;
○下の様にcs.hMenu = NULL;

645 名前:デフォルトの名無しさん :03/02/06 13:47
>>642
エラーの内容を(ry

646 名前:デフォルトの名無しさん :03/02/06 14:35
>>642に加えて
1. IDR_XXXを削除(リネーム不可)

2. CMainFrameのOnCreateClientを以下のようにオーバーライド
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
  // TODO: この位置に固有の処理を追加するか、または基本クラスを呼び出してください
  
  return CreateClient(lpcs, NULL);
}

3. CMainFrameのLoadFrameを以下のようにオーバーライド
BOOL CMainFrame::LoadFrame(UINT nIDResource, DWORD dwDefaultStyle, CWnd* pParentWnd, CCreateContext* pContext)
{
  // TODO: この位置に固有の処理を追加するか、または基本クラスを呼び出してください

  return CFrameWnd::LoadFrame(nIDResource, dwDefaultStyle, pParentWnd, pContext);
}

647 名前:デフォルトの名無しさん :03/02/06 16:20
m_button1.SetButtonStyle( BS_CHECKBOX );
m_button2.SetButtonStyle( BS_CHECKBOX | BS_PUSHLIKE );

二つのボタンのスタイルをこんな感じに設定したのですが、
どちらも同じただのチェックボックスになってしまいます。

ヘルプにはBS_PUSHLIKE を指定することにより
チェックボックスの外見をプッシュボタンに変えるとあるのですが上手くいきません。

見た目がプッシュボタンのチェックボックスはどうやって作るのでしょうか?

648 名前:642 :03/02/06 16:22
>>646
出来ました!
ありがとうございます!

649 名前:デフォルトの名無しさん :03/02/06 23:32
突然失礼します。
サーバ・クライアント間の通信についてです。

クライアント側で送受信スレッド(送受信で使っているのはWindowsSocket)を複数起動して、
一台の端末からサーバにアクセスをするというプログラムを作ってみたのですが…。
送受信スレッドの数が一定数を超えると、接続をサーバ側で受け付けていないのに、
各送受信スレッドの持つconnect関数からは0が返ってきてしまい、接続できたことになってしまうのです。
各送受信スレッドは接続出来ていないのに、送信を実行し、NULLを受信して処理を完了してしまいます。
(送受信スレッドの接続タイミングを遅らせれば処理は正常終了しますが、同時に実行することでサーバ負荷も確かめたいのです。)

これでは、送受信を行ったとは言えないので、どなたか良い対処知っていますでしょうか?

650 名前:デフォルトの名無しさん :03/02/07 00:38
多分ネットワークスレに逝った方がいいと思う

651 名前:デフォルトの名無しさん :03/02/08 01:30
MDIアプリケーションで印刷機能を使っています。
CViewの派生クラスで描画しているものを、
OnPaint()でプリンタに出力しています。
印刷プレビューではまったく問題なくモニタには表示されるのですが、
いざプリントアウトすると、何も印刷されなかったり、
途中まで印刷されて、残りは真っ白、などと言うことがしばしばあります。
途中の場合も、その場所は決まっていません。
再現性は無く、うまくいくときもあれば失敗するときもあり、
今ひとつ原因がつかめません。
アプリケーションそのものは、何事も無く印刷しているような
動きをしています。エラー等で落ちることもありません。
こういった不具合に考えられる原因に何か心当たりのある方、
いらっしゃいましたら、教えていただけませんか。
よろしくお願いいたします。

主な環境は、
VC++6.0(SP5)
Win2000 Pro.
です。

652 名前:デフォルトの名無しさん :03/02/08 01:34
>>651
CView派生なら、OnDrawなのでは?

653 名前:651 :03/02/08 01:37
>>651 >>652
間違えました。OnPaint()じゃなくてOnPrint()です。
印刷方法が画面と異なるので、OnPrint()をオーバーライドしています。

654 名前:デフォルトの名無しさん :03/02/08 02:55
ウィンドウのDCに対してTextOutを行うときちんと描画されるのですが、
CreateCompatibleDCでウィンドウDCのコンパチで作ったDCには描画されません。

こういった不具合に考えられる原因に何か心当たりのある方、
いらっしゃいましたら、教えていただけませんか。
よろしくお願いいたします。

655 名前:デフォルトの名無しさん :03/02/08 03:03
>>651
プリンタドライバが原因じゃなくて?

656 名前:デフォルトの名無しさん :03/02/08 03:05
ほのかなコピペの香り

657 名前:651 :03/02/08 15:35
>>655
とも思ったのですが、プリンターには依存しないみたいです。
NEC、エプソン、キャノンのプリンタでそれぞれ現象は確認しています。
印刷プレビューはうまくいくのに、何でその後の印刷処理は失敗するのだろうか?
不思議でなりません。

658 名前:デフォルトの名無しさん :03/02/08 15:38
>651
出来たり出来なかったりという現象は、たいていメモリがらみ。
CViewの派生クラスの生存期間を確認汁。

659 名前:デフォルトの名無しさん :03/02/08 18:34
ビルドする時に稀にVC自体が固まる事って有りませんか?
どうもビルド直前のファイルを保存する段階で固まってるみたいです。
おかげで今までも何回か固まってソースがあぼーんしてたんですけど
今回は1日かけて打ったコードがあぼーんしました。激しく鬱です。

原因や対応策など分かるのなら教えて頂けないでしょうか。
環境はWindows2000SP3 & VC++6.0SP4です。


660 名前:デフォルトの名無しさん :03/02/08 18:47
1日かけて打ったコードって・・・
それまで1回もコンパイルしなかったんだ

661 名前:デフォルトの名無しさん :03/02/08 18:53
>>659
ビルドする前に上書き保存しとけば良いジャン。
今に始まった訳でも無しwinの特にMS製のアプリ使ってる場合それはもう常識かと、

662 名前:デフォルトの名無しさん :03/02/08 19:00
>>661
その保存の時に固まってるんですよね。
とは言うものの実際に「全て保存」したときに固まった事は無いんですが
基本的にそれで保存しないので偶々遭ってないだけかも。

>>660
5、6時間程度ならザラです。

663 名前:デフォルトの名無しさん :03/02/08 19:10
ソース編集してすばやくビルド(F7)しようとしたら、
応答が無くなってソースファイルが消失したり(稀)、
ファイル保存のエラーメッセージが出たり(頻繁)
VCが落ちる(たまに)ってことはある。

俺の対策はWORDなどと同じでCtrl+S

664 名前:デフォルトの名無しさん :03/02/08 19:21
しかしレベル落ちたな
ここはPC初心者スレですか?

665 名前:名無しさん@Emacs :03/02/08 19:28
すみません、教えて下さい。
Visual C++ .Net って pro が無くって Standard しかありませんよね。
で、このStandardって昔の lerning みたいに商用利用禁止とかなんだ
かんだとうるさい制限あるんでしょうか?
VS.Net pro を買うのは馬鹿高いのですが、他の言語を使わなければVC.Net
Standard で事足りるものなのでしょうか?


666 名前:デフォルトの名無しさん :03/02/08 20:08
ストリングテーブルを使ってみたいのですが、

strcpy(hoge, ストリングテーブル内F_NAME);
fopen(ストリングテーブル内F_NAME ,"r");

のような事は、どんな関数を使えばいいですか?

667 名前:デフォルトの名無しさん :03/02/08 20:46
>>666
LoadString

668 名前:666 :03/02/08 20:51
>>667
\(・∀・)/ アリガトン
やってみるよ。・・・何かコレ、使った覚えがあるなあ(;´д`)

669 名前:デフォルトの名無しさん :03/02/09 16:18
ちょっとお門違いな質問かもしれないが
ビジネスの現場で命名規則って、どれくらいの人が守ってるんだろう。
先頭にポインタの時p、正数ならnってのめんどいから
自分はやる気ゼロなんだけど。
あと自分でbool型定義するとき、みんな大文字のBOOL使って
TRUE,FALSE使うのかな。

670 名前:デフォルトの名無しさん :03/02/09 16:34
>>669
会社によりけりだと思われ。
社内で守れって言われたら守れば?
自分はいいかもしれないけど他の人がソース見たときに見やすいかどうかでしょ。

671 名前:デフォルトの名無しさん :03/02/10 00:07
うちの会社はその辺あんまりこだわってないけど、ループカウンタ用のi, jとかならともかく
普通の変数さえ一文字なのは勘弁して欲しい人はいる。マジやめれ・・・。

672 名前:デフォルトの名無しさん :03/02/10 00:28
マ板と微妙なラインで分かつ話題ですな

673 名前:デフォルトの名無しさん :03/02/10 01:17
VC使ってるってだけでVCの質問ではないな

674 名前:デフォルトの名無しさん :03/02/11 03:28
age

675 名前:デフォルトの名無しさん :03/02/11 09:44
質問させていただきます。

int型をchar型に変換するような関数は無いでしょうか?
当方、DelphiからVCに移ってきたものですが、
Delphiでいうinttostr関数のようなものを探しています。

676 名前:デフォルトの名無しさん :03/02/11 09:53
>>675
ランタイム ライブラリ リファレンスを参照

677 名前:デフォルトの名無しさん :03/02/11 09:56
>>675
http://www.microsoft.com/japan/developer/library/vccore/_crt_Run.2d.Time_Routines_by_Category.htm

678 名前:デフォルトの名無しさん :03/02/11 10:02
>>675
_itoa()

679 名前:675 :03/02/11 10:52
>>676-678

初歩の質問に答えていただきありがとうございました!
お陰でDelphi時代と同じ手法が使えそうです。

680 名前:デフォルトの名無しさん :03/02/11 23:41
いろいろいじってるとパラメータヒントが
出なくなる時があるんだけど・・なぜ?
ワークスペース作り直すと出るようになるんだけど。

681 名前:デフォルトの名無しさん :03/02/11 23:59
>>680
仕様です。

682 名前:680 :03/02/12 14:45
Σ(lll゚Д゚) ガーン!

683 名前:デフォルトの名無しさん :03/02/12 14:59
>>680
IntelliSenseのことだよな?

ショックを受けてる喪前さんに、
漏れが救いの手を差し伸べてやろう(藁

.ncbファイルを削除して作り直させてみな。

684 名前:デフォルトの名無しさん :03/02/12 16:09
Windowサイズいっぱいの長方形描きたく
引数に現在のウィンドウ領域の最大サイズ入れると
長方形の右下の座標がウィンドウのやや左よりになってしまい
ラインが見えてしまいます。
結果はウィンドウとたぶり長方形のラインは見えなくなると思ったのですが
これはなぜでしょうか

void CS21Wnd::OnPaint()
{
CPaintDC dc(this);

CRect sikaku;
GetClientRect(sikaku);

dc.Rectangle(sikaku.top, sikaku.left, sikaku.bottom, sikaku.right);

}

685 名前:デフォルトの名無しさん :03/02/12 16:22
ウィンドウの*ふち*の太さじゃね?

686 名前:684 :03/02/12 16:24
どういうことでしょうか・・・

687 名前:デフォルトの名無しさん :03/02/12 16:41
矩形を描画すると右辺と下辺は数値より1ピクセル内側になるよ。

例えば5*3の長方形なら塗りつぶされるのは以下の■部分。

■■■■□
■■■■□
□□□□□

688 名前:デフォルトの名無しさん :03/02/12 16:46
VisualC++6.0でダイアログのイベントハンドラ追加できないエラーに
はまってます。

ダイアログエディタでダブルクリックすると
「新規メンバを追加できません」←なメッセージボックスがでて
ハンドラ追加してくれません。

何が原因なんでしょう?

689 名前:デフォルトの名無しさん :03/02/12 17:39
>>688
クラス定義部分どこかで文法エラーか、または何かコメントが消えてる。

690 名前:デフォルトの名無しさん :03/02/12 18:15
なるほど。回答ありがとうございます。
ソース調べてみます。


691 名前:684 :03/02/12 18:31
>>687
ありがとうございました。


692 名前:デフォルトの名無しさん :03/02/12 18:56
WNDCLASSの中でプロシージャを指定するところがありますが、(WNDPROC lpfnWndProc)

void CCWnd :: WndClassSet(char *str){
 WNDCLASSEX wex;
 wex.lpfnWndProc = (WNDPROC)str;

}

これはもちろんコンパイルできませんが、
こんな感じで、プロシージャを指定する方法は無いでしょうか?

void CCWnd :: WndClassSet(WNDPROC proc){
 WNDCLASSEX wex;
 wex.lpfnWndProc = proc;

}

こんな感じでもいいのですが・・・
プロシージャの型はLRESULT CALLBACKです。

693 名前:デフォルトの名無しさん :03/02/12 19:45
>>692
まず試せ

694 名前:しょしんしゃ :03/02/12 21:40
リストボックスの水平スクロールバーについて質問です
(非MFC環境)
VCでリストボックスのプロパティの「水平スクロールバー」
をチェックしただけでは実際に現れない、LB_SETHORIZONTALEXTENT
で、幅を指定しろ、とのことはネットで調べてなんとかわかったのですが、
これをやっても何故か表示されません。

考えられる原因は何かあるでしょうか?
(リストボックスのプロパティは水平垂直スクロールバー以外いじってません)

695 名前:落伍者 :03/02/12 21:53
OMANKO開閉中です

696 名前:落伍者 :03/02/12 22:29
OMANKO開閉中です !!


697 名前:落伍者 :03/02/12 22:30
OMANKO開閉中です !! !!


698 名前:デフォルトの名無しさん :03/02/12 23:01
>>694
ソース晒してみ。

699 名前:デフォルトの名無しさん :03/02/12 23:16
jdib32.dll のマニュアルに、
|BorlandC++以外のコンパイラをお使いの場合は,
|各自で,コンパイラに付属のimplib.exe(インポートライブラリ作成ツール)
|に相当するツールを使用して,jdib32.dllから,jdib32.libを作成してください.

と書いてあったので、VC6のヘルプで検索して確信が持てないまま、
>LINK /DEF:jdib32.dll /OUT:jdib32.lib を実行したところ、次のエラーが出ました。

|LINK : warning LNK4001: オブジェクト ファイルが指定されていません。ライブラリを使用します
|LINK : warning LNK4068: /MACHINE の指定がありません; IX86 をデフォルトとします
|jdib32.dll : warning LNK4017: MZP 文はターゲット プラットフォームでサポートされていません;
| 無視しました
|ライブラリ jdib32.lib とオブジェクト jdib32.exp を作成中
|LINK : fatal error LNK1104: ファイル "jdib32.lib" を開けません。
|LINK : fatal error LNK1141: エクスポート ファイルのビルド中に障害が起こりました。

どうやったら作成できるんでしょうか?


700 名前:692 :03/02/12 23:21
>>693
分かる範囲で適当に試して済んでるなら書き込みませんよ。
上記のソース+何通りかは試してます。
ウインドウプロシージャは関数だからパラメータで渡す事はできないので、
分からんのです。

701 名前:デフォルトの名無しさん :03/02/12 23:42
>>692

char* s = (char*)(WNDPROC)WndProc;
WndClassSet(s);

もし、やりたいことが、

WndClassSet("WndProc");

みたいなことだとしたら、おまえにCは向いてないから別の言語選択しる。

702 名前:デフォルトの名無しさん :03/02/12 23:44
ちなみに

void CCWnd :: WndClassSet(WNDPROC proc){

でも充分いけるぞ。
(Windowプロシージャが仮想関数とかじゃなければな)

703 名前:しょしんしゃ :03/02/12 23:51
>>698
作成したダイアログボックス(チャット用のウィンドウの予定です)にあるリストボックスです

HWND hChatDlg;
hChatDlg=CreateDialog((HINSTANCE)hm,MAKEINTRESOURCE(IDD_CHAT),hWnd,(DLGPROC)ChatDlgProc);
SendMessage((HWND)GetDlgItem(hChatDlg,IDC_CHATLIST),LB_SETHORIZONTALEXTENT,(WPARAM)100,0);

IDD_CHAT はダイアログのIDでIDC_CHATLISTはダイアログ内のリストボックス
です。

もしかしてタイミングとかやばいんですかね?お願いします。。

704 名前:デフォルトの名無しさん :03/02/13 00:01
なぜWM_INITDIALOGでしょりしない?

705 名前:デフォルトの名無しさん :03/02/13 00:07
>>703 LBS_MULTICOLUMNになってない?

706 名前:しょしんしゃ :03/02/13 00:10
>>704
それもしてみてますがやっぱりバーは現れないです。。

707 名前:しょしんしゃ :03/02/13 00:16
>>705
それは、VCのリストボックスのプロパティのスタイルのところにある、
「複数列」というチェックボックスの部分でしょうか?

チェックはついていません

708 名前:デフォルトの名無しさん :03/02/13 00:47
>>703
・GetDialogItemはちゃんと有効なハンドルを返してる?
・リストボックスの幅は100より小さい?

709 名前:しょしんしゃ :03/02/13 01:28
>>708
うわっ わかりました。。。
リストボックスの幅に足りてませんでした。何やってんだろ、、、

ご迷惑おかけしました。ありがとうございます!!

710 名前:デフォルトの名無しさん :03/02/13 08:24
>>699
VCにはimplib.exe相当のものが存在しないので
VCでつくったDLLをBCで利用することは可能だが逆は不可能。


711 名前:デフォルトの名無しさん :03/02/13 08:38
getprocaddress使えばええやん

712 名前:699 :03/02/13 23:30
>>710
回答ありがとうございます。
ダメでしたか。
マシンが高速化されてるし、DirectXもあるから、DIBは需要少ないんですね。


713 名前:デフォルトの名無しさん :03/02/13 23:46
>>712
自分でダミーのdll作って、lib作れば

714 名前:699 :03/02/14 00:17
>713
初心者なので、ちょっとムリかも。


715 名前:デフォルトの名無しさん :03/02/15 00:57

 VC++の自作アプりを配布するときに、フリーで
ソースも付けたいと思ってるんですが、プロジェクトごと
圧縮して配布して良いもんなんですかね?

 別にウイルスとかヤバイのじゃないけど、シリアルとか
そのまま配っても漏れませんか?



716 名前:デフォルトの名無しさん :03/02/15 02:16
ハローワールドってなにですか?

717 名前:デフォルトの名無しさん :03/02/15 02:53
職安

718 名前:716 :03/02/15 03:16
>>717
ありがとうございます。解決しました。

719 名前:デフォルトの名無しさん :03/02/15 11:45
VC++のデバッガで以下のエラーを教えてくれる方法知りませんか?

int a;

void main(void){

int b=1;

if(b==0) a=0;

b=a;       //<- ここで「”a”に初期値が与えられていません」なエラー

}


720 名前:デフォルトの名無しさん :03/02/15 11:46
>>719
コンパイラの警告レベルを4にしろ。
そして警告は全てエラーにする、を選択しとけ。

721 名前:デフォルトの名無しさん :03/02/15 18:55
インターネットを介した通信プログラムを作りたいと思うのですが
お手本になるようなオープンソースなプログラムってありますか?

722 名前:デフォルトの名無しさん :03/02/15 18:56
>>721
CSocketで調べれば良いんじゃない?


723 名前:デフォルトの名無しさん :03/02/15 19:02
>>721
unix

724 名前:デフォルトの名無しさん :03/02/15 19:02
>>722
検索しました。
いろいろみつかって何とかなりそうです。
頑張ってみます。

725 名前:721 :03/02/15 19:16
うそだぴょーん、まったくわかんねーよ。
わかりやすいページがあったら教えてくれ。頼む。

726 名前:721 :03/02/15 19:17
>>725は偽物ですので。

727 名前:デフォルトの名無しさん :03/02/15 19:33
>>726
はいはい、偽物さんは帰った帰った。

728 名前:デフォルトの名無しさん :03/02/15 19:34
VCスレでのUNIX発言を取り消そうと必死なのだろうか?


729 名前:デフォルトの名無しさん :03/02/15 20:33
>>726
ジサクジエンだろ?

730 名前:デフォルトの名無しさん :03/02/15 22:24
タイトルバー無しのウィンドウをアプリケーション本体の
ウィンドウよりも上につくろうとしてますが、てこずってます。

・CreateEx()でWS_EX_TOPMOSTを指定したが
 アプリケーションウィンドウよりは上にはならない。
・CreateEx()のpParentWnd,nIDを0にすると上にはなるが
 独立したウィンドウになるので
 タスクバーに含まれてしまい気持ちが悪い。
・pParentWnd,nIDを0にしてWS_EX_TOOLWINDOWを指定すると
 タスクバーに含まれないが、ウィンドウにタイトルバーがついてしまう。

CreateEx(WS_EX_TOPMOST,
     className, "", WS_CHILD|WS_BORDER,
     rect, GetDesktopWindow(), nID);
で、今、このようにデスクトップウィンドウを親に指定してやれば
望みどおりアプリケーションウィンドウよりも前面の
タイトルバー無しのウィンドウができたんですが
nIDにへたな番号を渡すと他のアプリと干渉しないかが心配です。
そもそももっとうまくやる方法はないのでしょうか?

731 名前:デフォルトの名無しさん :03/02/15 23:54
>>730
>タイトルバー無しのウィンドウをアプリケーション本体の
>ウィンドウよりも上につくろうとしてますが
なにがしたいの?

732 名前:730 :03/02/16 00:17
スタートボタンにカーソルあわせると
ポップアップしたヘルプが出るじゃないですか。
ああいうのを作りたいんです。
それだけならHtmlHelp()を使えばいいですが
ウィンドウの中身に、いろいろなフォントをまぜて
表示したりビットマップ貼ったりしたいんです。
HtmlHelpだとそこまではできないようなので。

733 名前:デフォルトの名無しさん :03/02/16 00:22
ツールチップのことか?
なら、ツールチップ使えばいいじゃん。

734 名前:730 :03/02/16 00:31
ツールチップ!?

・・・検索中・・・

ポップアップヘルプでググってたけど、なかなか求めてるのが
ひっかからなくて、おかしいなと思ってたら・・・
ちなみに手元の本にはツールヒントって書いてあって
ちゃんと説明もあった・・・出直してきます。(´・ω・`)ショボーン

735 名前:デフォルトの名無しさん :03/02/16 02:42
ウィンドウの中で円が壁に当たると反射させたいのですが
実行させると壁を突き抜けてどっか行ってしまいます。どこに間違いがあるんでしょうか。
コードが稚拙なのはご了承ください。
int xpos;
int ypos;
int xmov;
int ymov;
int size;
int win_xsize;
int win_ysize;
void CS27Wnd::OnPaint()
{
CPaintDC dc(this);
dc.Ellipse(xpos, ypos, xpos + 100, ypos + 100); }
int CS27Wnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
SetTimer(1, 10, NULL);
return 0; }
void CS27Wnd::OnSize(UINT nType, int cx, int cy)
{if (nType == SIZE_MINIMIZED)
{ return;
}
win_xsize = cx;
win_ysize = cy; }

736 名前:デフォルトの名無しさん :03/02/16 02:42
void CS27Wnd::OnTimer(UINT nIDEvent)
{xmov = +5;
ymov = +5;
if (xpos + xmov > win_xsize) {
xmov = -5; }
if (ypos + ymov > win_ysize) {
ymov = -5; }
if (xpos + xmov < 0) {
xmov = +5; }
if (ypos + ymov < 0) {
ymov = -5; }
xpos = xpos + xmov;
ypos = ypos + ymov;
Invalidate(); }

737 名前:デフォルトの名無しさん :03/02/16 03:27
>>736
各変数の初期値は適宜初期化されてるとして……

OnSize()で
win_xsize = cx;
win_ysize = cy;
ってなってるけど、●の大きさ考えてないよね?
あと、OnTimerで常に
xmov = +5;
ymov = +5;
してるのもどうかと思う。
この条件文だと、 xpos + xmov ( xpos + xmov )がはみ出るときしか跳ね返らない。

738 名前:デフォルトの名無しさん :03/02/16 03:31
↑は xpos + xmov ( ypos + ymov )の間違い。

一度跳ね返るとウィンドウ内に戻るから、跳ね返りの条件に当てはまらずにまた右下へ向かう。
その結果右下端でバウンドするのが最終結果だと思うけど。

OnTimerで方向ベクトル(xmov、ymov)を初期化するべきか、
実際の円が動く範囲は直径を考えるとどこからどこまでか、
ということがポイント。

739 名前:デフォルトの名無しさん :03/02/16 03:39
>>735-736
どうしても分からん頭持ってるならブレークポイントいれて見てみろや

740 名前:デフォルトの名無しさん :03/02/16 15:33
void CChildView::OnContextMenu(CWnd* pWnd, CPoint point)
{
  CMenu menu;
  VERIFY(menu.LoadMenu(IDR_MENU_POPUP));
  CMenu* pPopup = menu.GetSubMenu(0);

  pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this);
}

上記のような感じで右クリックでポップアップメニューを出しているのですが、
UPDATE_COMMAND_UI をハンドルしてもチェックマークを入れることができません。
なぜなのでしょうか? どっかが根本的に悪い気がするのですが。


741 名前:デフォルトの名無しさん :03/02/16 18:31
>>740
TrackPopupMenuの最後の引数はメインフレームのウィンドウへのポインタだった気がする。

742 名前:740 :03/02/16 19:46
>>741
ありがとうございます。
this → AfxGetMainWnd の修正で旨くいきました。



743 名前:736 :03/02/16 20:07
>>737-739
有難うございました。

744 名前:デフォルトの名無しさん :03/02/17 00:56
char st1[]={"1","1"};//←エラー
char st2[]="11";//←OK

・・・なんで?


745 名前:デフォルトの名無しさん :03/02/17 00:58
>>744
疑問の余地もないと思うが

746 名前:デフォルトの名無しさん :03/02/17 01:00
>>744
char st1[]={'1','1'};かchar *st1[]={"1","1"};だろ(^_^;)

747 名前:デフォルトの名無しさん :03/02/17 04:08
>>746
ネタニマジレス(以下略

748 名前:デフォルトの名無しさん :03/02/17 05:34
>>747=ネタということにしたい>>744

749 名前:デフォルトの名無しさん :03/02/17 07:58
>>748=と言うことにしたい>>744


750 名前:デフォルトの名無しさん :03/02/17 10:52
int型の子息演算でオーバーフロー例外を投げさせる方法、またはインラインアセンブラ以外で
キャリーフラグを調べる方法はないですか。


■過去ログ置き場に戻る■ 1- 前250 次250 最新50
DAT2HTML 0.33f Converted.