HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
0421
kujiフォーカスセットを示す破線枠を表示したい15解決


kuji

リンク

2010/4/21(Wed) 14:16:08|NO.32138

ボタンを配置してTabキーを押すとフォーカスがボタンに合い破線枠が表示される、
これがデフォルトだと思うのですがWindows7では表示されません。(WindowsMeでは表示されました。)
これではキーボード操作が不便でなりません。
Windows7でフォーカスセットの破線枠を表示するにはどうしたらよいでしょうか?
「視覚テーマを無効にする」では解決できませんでした。教えてください。
また、WindowsXP、Vistaでは破線枠は表示されるのでしょうか?
これも合わせて知りたいです。お願いします。



この記事に返信する


GENKI

リンク

2010/4/21(Wed) 19:20:33|NO.32142

> ボタンを配置してTabキーを押すとフォーカスがボタンに合い破線枠が表示される、
> これがデフォルトだと思うのですがWindows7では表示されません。(WindowsMeでは表示されました。)

そんなことはない…はずです。
7のことはまだよく知らないのですが、ビジュアル面での改善が行われているのでフォーカスを示す印が破線とは限りません。
見た目はともかく、フォーカスがあっているボタンに対して何らかの強調表示がされているはずです。

Vistaではボタン内に破線、もしくはそれに加えてボタンの周りが水色の枠で囲まれます。

気づかずに見逃しているだけかもしれませんので、ボタンが表示されるツールを起動して、TABキーでフォーカスの移動をやってみてください。



窓口

リンク

2010/4/21(Wed) 21:35:33|NO.32149

自分の環境(vista)では、これで動きました。


#include "user32.as" #define BS_NOTIFY $00004000 #define GWL_STYLE $FFFFFFF0 button gosub "button",*label hButton = objinfo_hwnd(stat) GetWindowLong hButton , GWL_STYLE SetWindowLong hButton , GWL_STYLE , stat | BS_NOTIFY button gosub "button2",*label hButton2 = objinfo_hwnd(stat) GetWindowLong hButton2 , GWL_STYLE SetWindowLong hButton2 , GWL_STYLE , stat | BS_NOTIFY stop *label return



窓口

リンク

2010/4/21(Wed) 21:38:31|NO.32150

ttp://wisdom.sakura.ne.jp/system/winapi/win32/index.html
 このページから参照させていただきました。
 
 



窓口

リンク

2010/4/21(Wed) 23:57:58|NO.32151

すみません、どうやら間違いだったようです。忘れてください。



ANTARES

リンク

2010/4/22(Thu) 23:36:55|NO.32177

 何か表示される場合とされない場合があるようですね。

・表示される場合 スクリプトエディタからコンパイル+実行した場合 エディタのマクロから拙作コンパイラを使ってコンパイル+実行した場合 ・表示されない場合 exeファイルにした場合 エクスプローラの関連づけで拙作コンパイラを使ってコンパイル+実行した場合

 エクスプローラを使うか否かくらいしか共通の違いが見あたりませんが……?



GENKI

リンク

2010/4/23(Fri) 00:40:22|NO.32178

> そんなことはない…はずです。

ANTARESさんのアドバイスを参考に確認してみたら、そんなことありました。失礼しました。
エディタから実行すると破線枠が表示されますが、実行形式(.exe)を作成してそれを実行すると破線枠が表示されませんでした。どこにフォーカスがあっているかわかりませんね。
Tabとスペースキーで確認したところ、表示はされていませんが、フォーカスはちゃんと移動しているようです。

これは、バグ…なのかな?



ESZET

リンク

2010/4/23(Fri) 15:52:41|NO.32182

私の環境(Vista HP SP2 32bit)でも破線枠が表示されない時があります。



kuji

リンク

2010/4/23(Fri) 18:54:03|NO.32183

レスありがとうございます。
exeファイルにするとチェックボックスもコンボボックスもフォーカスが表示されませんね。
作者様の対応待ちでしょうか。表示されない環境がもう少ししぼれればいいのですけど。
書き忘れましたが当方のWindows7は64ビット版です。



おにたま(管理人)

リンク

2010/4/23(Fri) 19:13:49|NO.32186

私の方でも確認してみましたが、確かに表示されないですね。
スクリプト実行時とexeにした時とで動作が変わるのは明らかに不具合なんですが、
原因がまだちょっと掴めていません。困りました…。
同様の現象は他でもあるようで、今まで気づいてませんでした。報告ありがとうございます。
http://social.msdn.microsoft.com/Forums/ja-JP/vcgeneralja/thread/582bcf11-401b-4a0f-a1bc-42e5a60fa366

とりあえず原因がわかればHSPのシステム側で修正したいと思います。
もし何かうまい方法があればお知らせください。



GENKI

リンク

2010/4/23(Fri) 19:14:02|NO.32187

私も記述し忘れていました。
NO.32178の確認はVista HomePremium sp2で行いました。
HSPは3.21です。



Aki

リンク

2010/6/7(Mon) 08:00:36|NO.33112

私はVisualC#なんですけど、不具合があってググっているうちにここにきました。
次の方法ではいかがでしょうか?

1.コントロールパネルの「コンピュータの簡単操作センター」→
  「キーボードを使いやすくします」を選択

2.「ショートカットキーを使いやすくします」の中の
  「ショートカットキーとアクセスキーに下線を表示します」のチェックボックスに
  チェック。

Vistaの仕様らしいです。



Aki

リンク

2010/6/7(Mon) 08:16:55|NO.33113

全然違うかったらすいません。



Hiroaki Software

リンク

2010/6/9(Wed) 22:17:14|NO.33165

こちらでも検証してみました。
こちらではちゃんと動きました・・・

環境は
HSPのバージョン:3.21
OS:Windows 7 Home Premium
その他:Visual Studio 2008/2010 インストール済みPC
です

試したスクリプトは

button gosub "button",*label button gosub "button2",*label stop *label dialog "ObjID:"+stat return
です。

実行してTabを押したらちゃんとボタンにフォーカスが行きますし、
破線枠が表示されます。
但し、VCでWin32 APIを使って作成したものは行きませんね・・・
ちょっとこちらでも調べてみますね。
おそらくVCでWin32 APIを使って作成したものでちゃんとフォーカスが行けば
解決になるかなと思いますので・・・



Hiroaki Software

リンク

2010/6/9(Wed) 22:41:32|NO.33166

追加します。確かに、実行ファイルにするとフォーカス枠が出なくなりますね・・


追加情報としては
VC++2008において、空のプロジェクト(Windowsアプリケーション)で作成して
C++とWin32 APIで組んだ場合ボタンにTabフォーカスは行きませんが
フォームデザイナを使用する方法でやるとtabフォーカスが行きます。
自動的にプロジェクトに追加されたコードを解読してみます。



kuji

リンク

2010/6/10(Thu) 03:31:07|NO.33180

解決マークになっていたので慌てて見てみたら…

Akiさんの示してくれたやり方でWindows7でもフォーカスの破線枠が表示されました!
作成したプログラムの配布を考えていたので、対処法を知ることができたのはとても大きいです。
ありがとうございます!

私には何の知恵も出せませんでしたが、これが
「実行ファイルにすると破線枠が表示されない」という問題の手がかりになるでしょうか。

ともあれAkiさん。重ねて、ありがとうございます。



ONION software Copyright 1997-2021(c) All rights reserved.