レジストリ経由のフォント受渡し???
数日前に類似の質問をさせて頂きました
ご親切に3件もご指導の回答を頂きましたが、私の質問の仕方が悪く問題の解決に至っておりません
再度、質問形式を変更してお教えを請いたいと存じます
C#のアプリケーションでフォントダイアログを表示してフォントを指定します
指定されたものをレジストリに書込みます
FontDialog MyFont = new FontDialog();
if (MyFont.ShowDialog() != DialogResult.Cancel)
{
key = Registry.CurrentUser;
key = key.CreateSubKey(@"MyCompany\MySoft");
key.SetValue("MyKey", MyFont.Font, Microsoft.Win32.RegistryValueKind.Unknown); ← (1)
}
レジストリの HKEY_CURRENT_USER ⇒ SoftWare ⇒ MyCompany ⇒ MySoft の下の MyKeyには REG_SZ 種類でデータとして
[Font: Name=HPG行書体, Size=15.75, Units=3, GdiCharSet=128, GdiVericalFont=False] ← (2)
と設定されました
これをC++プログラムで読み込み、フォントダイアログで指定されたフォントで印刷します
HKEY hKey;
DWORD dwDisposition;
LONG result;
result = RegCreateKeyEx( HKEY_CURRENT_USER,L"MyCompany\\MySoft",0,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&hKey,&dwDisposition);
HFONT MyHFONT; ← (3)
result = RegQueryValueEx(hKey,L"MyKey",NULL,&dwType,NULL,&dwSize); //データのサイズを取得
result = RegQueryValueEx(hKey,L"MyKey",NULL,&dwType,(LPBYTE)(LPCTSTR)&MYHFONT,&dwSize); ← (4)
SelectObject(hdc,MYHFONT);
TextOutW (hdc, ~~ ← (5)
質問
(1) フォント指定をレジストリに書込む時、Unknown指定で良いのでしょうか
(2) Unknow指定で書込みましたがREG_SZ種別になっています OKですか それから書き込まれたデータはこれで正常ですか
(3) HFONTを指定していますが、この場合OKですか
(4) (LPBYTE)(LPCTSTR)&MYHFONTで受けていますが良いのでしょうか?
(5) 最大のワカラナイ!!! 印刷された文字はC#のフォントダイアログでしていされたものに変化していない 以前のままです
C++は初心者です 特にフォントのハンドリング知識は浅学です
宜しくご指導お願い申し上げます
補足
ご回答有難うございます、私が意義を見出した上での質問です。 別に日本人の拘りでなく、米国の大学でのエッセイに筆記体の美しさが シビアに評価に直結することを実感しています。 質問後自己解決しましたので、後に検索される可能性のためにリンクを 書いておきます。 http://desktoppub.about.com/library/fonts/bl_schoolpay.htm http://www.educationalfontware.com/ 白抜きをなぞって練習することができるフォントで希望の ままでした。