teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

開始位置を設定するメソッドがあったのでそれを使った状態に修正しました。

2018/12/05 05:37

投稿

moshi
moshi

スコア90

title CHANGED
File without changes
body CHANGED
@@ -5,11 +5,14 @@
5
5
 
6
6
  ### 試したこと
7
7
 
8
+ SetBoundsで描画の開始位置を設定できるようなので以下のソースを作成しました。
9
+
8
10
  ```ここに言語名を入力
9
11
 
10
12
  import (
11
13
  "github.com/lxn/walk"
12
14
  . "github.com/lxn/walk/declarative"
15
+   "github.com/lxn/win"
13
16
  )
14
17
 
15
18
  type MyLoadWindow struct {
@@ -43,6 +46,21 @@
43
46
  },
44
47
  }
45
48
 
49
+ const WINDOW_HEIGHT = 100
50
+ const WINDOW_WIDTH = 200
51
+
52
+    // 画面の縦と横のサイズを取得
53
+ scrWidth := win.GetSystemMetrics(win.SM_CXSCREEN)
54
+ scrHeight := win.GetSystemMetrics(win.SM_CYSCREEN)
55
+
56
+    // 描画開始位置を設定
57
+ mw.MainWindow.SetBounds(walk.Rectangle{
58
+ X: int((scrWidth - WINDOW_WIDTH) / 2),
59
+ Y: int((scrHeight - WINDOW_HEIGHT) / 2),
60
+ Width: WINDOW_WIDTH,
61
+ Height: WINDOW_HEIGHT,
62
+ })
63
+
46
64
  if _, err := MW.Run(); err != nil {
47
65
  println("Error")
48
66
  return
@@ -51,11 +69,10 @@
51
69
  ```
52
70
 
53
71
  ### 発生している問題・エラーメッセージ
72
+ > panic: runtime error: invalid memory address or nil pointer dereference
54
73
 
55
- ソースで実行する表示したいウインドウ自体はるのですが、画面左上のほうに表示されてしまいます。
74
+ SetBoundsのところで上エラーが出てしまいます。
56
- どうすれば画面中央に表示するができるでしょうか?
75
+ なぜのエラー出力されてしまうのでしょうか?
57
- わかる方がいらしたら教えていただきたいです。
58
- ライブラリはWalkを使用しています。
59
76
 
60
77
  ### 補足情報(FW/ツールのバージョンなど)
61
78
  Golang