ウィンドウの初期位置

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
atpiza

ウィンドウの初期位置

#1

投稿記事 by atpiza » 15年前

こちらに質問するのは初になります。atpizaです。

プログラムの起動時の初期位置を自由に設定したいのですがですが、まったくわかりません。
自分は、PCのディスプレイで言う画面の右下に表示させたいです。
方法をご存知の方、よろしくお願いします・・・。

それと、その自作したやつを、
常に他のアプリケーション等より上におきたい(常に最優先に表示させたい)のですが、
こちらもご存知の方よろしくお願い致します。 画像

シエル

Re:ウィンドウの初期位置

#2

投稿記事 by シエル » 15年前

DXライブラリをお使いですか?

atpiza

Re:ウィンドウの初期位置

#3

投稿記事 by atpiza » 15年前

ええ。
DXライブラリでコンパイラはvisualC++ 2010 Expressです。
詳しく書かなくてすみません。

スキマ妖怪

Re:ウィンドウの初期位置

#4

投稿記事 by スキマ妖怪 » 15年前

Dxライブラリをお使いということでこちらの関数でどうでしょうか。

// ウインドウの初期位置を設定する
int SetWindowInitPosition( int x , int y ) ;

// ウインドウモードのウインドウの位置を設定する( 枠も含めた左上座標 )
int SetWindowPosition( int x, int y ) ;


DxLib.hの中を見てみるといいかもしれませんよ、他にも色々ありますので。
最前面表示については、軽く見た感じではDxライブラリ内にはないみたいです。
(よく探せば見つかるかもしれませんが。)

WinAPIとか使わないとダメかなぁ…
その場合は、

HWND hWnd = 変更したいウィンドウハンドル;
SetWindowPos( hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);

みたいに書けばいいと思いますよ。
(間違ってたらすいません;)

シエル

Re:ウィンドウの初期位置

#5

投稿記事 by シエル » 15年前

DXライブラリだとちょっと分かりません。
たぶん専用の関数があると思いますが。。
WinAPIであれば、ウインドウ作成時に設定できるんですけどね。
あとMoveWindowを使うとか。

最前面表示については、スキマ妖怪さんの方法で良いと思います。

でもウィンドウハンドルの取得方法分かりますか?

P.S.
DXライブラリって細かい制御の時に困りそうですね。
HPのリファレンスに載ってない関数もたくさんありそうなので、
よく探せば専用の関数があるのかもしれないけど。

MNS

Re:ウィンドウの初期位置

#6

投稿記事 by MNS » 15年前

スキマ妖怪さんのを使わせていただくと、
SetWindowPos( GetMainWindowHandle(), HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);
これで常に最前面に出来ますね。

atpiza

Re:ウィンドウの初期位置

#7

投稿記事 by atpiza » 15年前

>>スキマ妖怪さん
>>シエルさん

回答ありがとうございます。初期位置設定のほうは無事解決しました。
最前面表示の件は
専用の関数など個人でできるかぎり調べようと思います。
DXライブラリではどうしても解決できない場合はそちらの方法をとらせていただこうと思います。

とりあえず一応なにかしらの方法があるということなので解決とさせていただきます。

また、これからも行き詰るところがあると思いますが、
その際も協力していただけると非常に助かります。
何卒宜しくお願い致します。

atpiza

Re:ウィンドウの初期位置

#8

投稿記事 by atpiza » 15年前

>>MNSさん
回答ありがとうございます!!
なんですが、そちらのコードでは解決できませんでした。
私の入力が悪いんでしょうか?

#include "DxLib.h"

int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){

DATEDATA Date; //時刻取得するための変数

SetGraphMode( 223, 45, 32);

ChangeWindowMode(TRUE); //ウィンドウモードに変更する為の関数

SetWindowPos( GetMainWindowHandle(), HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);

SetWindowStyleMode(1) //ウィンドウ枠消す

// ウインドウの初期位置を設定する
;SetWindowInitPosition( 1050, 946);


;if( DxLib_Init() == -1) return -1; // DXライブラリ初期化処理 エラーが起きたら終了
    ・
    ・
    ・なんちゃらかんちゃら
    ・
    ・

DxLib_End(); //DXlib終了
return 0;




こんなかんじなんですけど・・・
入れる場所に問題が?
}

atpiza

Re:ウィンドウの初期位置

#9

投稿記事 by atpiza » 15年前

あ 時刻取得の変数と画面サイズの設定はどうでもよいです

シエル

Re:ウィンドウの初期位置

#10

投稿記事 by シエル » 15年前

DxLib_Initのあとで呼び出せばよいかと

atpiza

Re:ウィンドウの初期位置

#11

投稿記事 by atpiza » 15年前

で、できました!!
これで本当に解決です!

協力してくれた皆様本当に感謝いたします!

閉鎖

“C言語何でも質問掲示板” へ戻る