質問編集履歴

3

SetWindowPlacement API

2015/12/24 07:47

投稿

yuba
yuba

スコア5568

test CHANGED
File without changes
test CHANGED
@@ -81,3 +81,21 @@
81
81
 
82
82
 
83
83
  「終了時位置再現など邪悪な機能である、搭載しようとすべきでない」などといったご意見でも歓迎です。
84
+
85
+
86
+
87
+
88
+
89
+ --- 追記 ---
90
+
91
+
92
+
93
+ プラットフォーム非限定の形で質問をしていましたが実際にはWindows開発でして、しかもWindowsではAPIがちゃんとありました。
94
+
95
+ [SetWindowPlacement関数](https://msdn.microsoft.com/ja-jp/library/cc411205.aspx)
96
+
97
+ 画面外にはみ出す場合のみ位置を補正してくれる座標設定関数です。
98
+
99
+
100
+
101
+ クリップされている方もいらっしゃり、他プラットフォームの場合についてのノウハウも集まればなお良いのでまだ質問は開いておきます。

2

ちゃぶ台返しも歓迎

2015/12/24 07:47

投稿

yuba
yuba

スコア5568

test CHANGED
File without changes
test CHANGED
@@ -73,3 +73,11 @@
73
73
 
74
74
 
75
75
  この条件を満たすなら、少なくともウィンドウの存在に気付いて適切な位置に移動することは可能ですから。
76
+
77
+
78
+
79
+ --- 追記 ---
80
+
81
+
82
+
83
+ 「終了時位置再現など邪悪な機能である、搭載しようとすべきでない」などといったご意見でも歓迎です。

1

簡略化した判定条件を追記

2015/12/24 01:46

投稿

yuba
yuba

スコア5568

test CHANGED
File without changes
test CHANGED
@@ -22,6 +22,8 @@
22
22
 
23
23
 
24
24
 
25
+
26
+
25
27
  一応これらを考慮した上でたった今ひねり出した判定条件が
26
28
 
27
29
 
@@ -29,6 +31,8 @@
29
31
  - ウィンドウの矩形内のすべての点が、いずれかのディスプレイ領域(ただし第一ディスプレイについてはタスクバーを除いたワークスペース領域)の矩形に含まれること
30
32
 
31
33
  = ウィンドウの矩形と各ディスプレイ領域の矩形の重なりの面積の合計が、ウィンドウの面積と等しいこと
34
+
35
+
32
36
 
33
37
 
34
38
 
@@ -41,3 +45,31 @@
41
45
 
42
46
 
43
47
  プラットフォーム依存の解決でも構いません、ノウハウをお持ちでしたら教えてください。
48
+
49
+
50
+
51
+ --- 追記 ---
52
+
53
+
54
+
55
+ 条件はこう簡略化してもだいたい問題ないですかね。
56
+
57
+
58
+
59
+ ●ウィンドウの4隅の点がそれぞれ、いずれかのディスプレイ矩形内に入っている
60
+
61
+
62
+
63
+ さらには、ウィンドウ全体が表示されていることまで望まなければ
64
+
65
+
66
+
67
+ ●次の2つの点が、いずれかのディスプレイ矩形内に入っている
68
+
69
+ ・ウィンドウ左上端
70
+
71
+ ・ウィンドウ左上端から(24,24)
72
+
73
+
74
+
75
+ この条件を満たすなら、少なくともウィンドウの存在に気付いて適切な位置に移動することは可能ですから。