忍者ブログ
暇人おやじの暇なつぶやき
[1] [2] [3]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

■Formから別のフォーム名の呼び出し

1、ソリューションエクスプローラにて
 プログラム本体の部分又はヘッダーファイルの部分を右クリック
追加メニューから新しい項目を選択する
画面が表示されるので、Windowsフォームを選び、ファイル名を入力する
このファイル名がフォーム(クラス)の名前になる

2、メインフォームからこの画面を呼び出すには
まずメインフォームのコードにこの画面を使う為にincludeする必要がある

#pragma once
#include "xxxxxx.h" ←1で作成した名前

そして呼び出す場面にて

Form^ form2 = gcnew xxxxxx();
form2->ShowDialog();

これで呼び出すことが可能になる。尚「ShowDialog()」命令は画面をモーダル表示する

ここで一つ不可解な事がある
それは1番目のフォームの場合、クラス名でそのままアクセスできるのに2番目以降の画面の場合にはそのままでは利用できない、これはメイン画面の作成と2番目以降の画面では作成方法が異なっているからだ

メインフォームの場合、プログラム本体(メイン プロジェクト ファイル)にて作成
    // メイン ウィンドウを作成して、実行します
    Application::Run(gcnew FrmMain());

つまり、ApplicationクラスのRunメソッドで生成される
ところが2番目以降の場合は

Form^ frminit = gcnew FrmInit();

Formクラスにアクセスして実体化している
そのため、同じgcnewを実行しているが、Formクラスの場合その戻り値がフォームの名称となるので、ファイルと同じ名称では利用できない
これを回避するには、大文字、小文字を駆使する必要がある

Form^ FrmInit= gcnew FrmInit(); ←これはコンパイルでエラーになる
PR
■Form1から任意のフォーム名への変更

デフォルトのフォーム名「Form1」では後々何を行っているフォームか分かりにくい為にプログラムを組む時には名称を変更する

1、ソリューションエクスプローラにて
ヘッダーファイルのForm1.hを選択し、プロパティ(Name)にて名前をFrmMain.hに変更する
変更後Enterを押下

2、FrmMain.hのコードでclass表記がされている行にカーソルを持っていく
するとプロパティ画面にクラスの名称「Form1」が表示されているので
「FrmMain」に変更しEnterを押下する

3、プログラム本体「XXXX.cpp」の変更(XXXX=新規作成で入れた名前)
ソリューションエクスプローラにて
ソースファイルのXXXX.cppの「#include "Form1.h"」を
「#include "FrmMain.h"」に変更し次にフォームの生成を行っている部分「Application::Run(gcnew Form1());」のForm1の部分をFrmMainに変更する


忍者ブログ [PR]
カレンダー
08 2024/09 10
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
フリーエリア
最新CM
最新TB
プロフィール
HN:
忍者 シオ才
性別:
非公開
バーコード
ブログ内検索