すみません、恐らく CreateFontToHandle を実行する際も SetUseASyncLoadFlag( TRUE ); で
非同期読み込みが ON になっているのではないでしょうか?
CreateFontToHandle は『読み込み処理』ではないのですが、時間が掛かる処理ということで
非同期実行が有効になっています
なので
SetUseASyncLoadFlag( TRUE ) ;
int FontHandle = CreateFontToHandle( NULL, 32, 10 ) ;
int Width = GetDrawStringWidthToHandle( "あいうえお", -1, FontHandle ) ;
↑
こちらのように CreateFontToHandle の前に SetUseASyncLoadFlag( TRUE ) ; が実行され
非同期読み込みが ON になっていると GetDrawStringWidthToHandle が呼ばれた時点では
まだフォントハンドルの作成が完了していない状態となり、GetDrawStringWidthToHandle が
失敗して -1 が返ってきます
なので、
SetUseASyncLoadFlag( FALSE ) ;
int FontHandle = CreateFontToHandle( NULL, 32, 10 ) ;
int Width = GetDrawStringWidthToHandle( "あいうえお", -1, FontHandle ) ;
↑
こちらのように、CreateFontToHandle を実行する前には SetUseASyncLoadFlag( FALSE ) ; を
実行して非同期読み込みを OFF の状態にしておいてください m(_ _;m