人のコードに口挟むのはあまりよくないかな。。。と思いつつ。。。
- BTのライブラリの初期化でWifiの値よんでた。
- WM_CREATEでBTが初期化されないタイミングがあるとBTの状態表示が描画されない
- 自身が選択されていない時でも文字色だけフォーカスがあってるようになってしまう
Download: WifiInfoSetup_Universal.1.25.1.CAB
Download: WifiInfoSetup_X01T.1.25.1.CAB
以下パッチ
diff -c WifiInfo.ORG/Bt.cpp WifiInfo/Bt.cpp *** WifiInfo.ORG/Bt.cpp Wed Jul 16 23:33:18 2008 --- WifiInfo/Bt.cpp Mon Jul 21 04:58:23 2008 *************** *** 43,49 **** { g_hWnd = hWnd; ! g_dwBtStatusPrev = GetWifiStatus(); RegisterNotification(); } --- 43,49 ---- { g_hWnd = hWnd; ! g_dwBtStatusPrev = GetBtStatus(); RegisterNotification(); } diff -c WifiInfo.ORG/WifiInfo.cpp WifiInfo/WifiInfo.cpp *** WifiInfo.ORG/WifiInfo.cpp Thu Jul 17 22:08:34 2008 --- WifiInfo/WifiInfo.cpp Mon Jul 21 05:01:31 2008 *************** *** 132,138 **** g_szWifiConnectedMsg[WIFI_MSG_LEN], // 無線LAN通信中のメッセージ(またはSSID) g_szBtOffMsg[BT_MSG_LEN], // Bluetoothオフのメッセージ g_szBtOnMsg[BT_MSG_LEN]; // Bluetoothオンのメッセージ ! static BOOL g_bShowSSID; // 無線LAN通信中にSSIDを表示するか --- 132,139 ---- g_szWifiConnectedMsg[WIFI_MSG_LEN], // 無線LAN通信中のメッセージ(またはSSID) g_szBtOffMsg[BT_MSG_LEN], // Bluetoothオフのメッセージ g_szBtOnMsg[BT_MSG_LEN]; // Bluetoothオンのメッセージ ! static BOOL g_bShowSSID, ! g_bBtInitialized = FALSE; // 無線LAN通信中にSSIDを表示するか *************** *** 235,240 **** --- 236,242 ---- // 初期表示メッセージの設定 WifiInitialize(g_hWnd); if (BtIsPresent()) { + g_bBtInitialized = TRUE; BtInitialize(g_hWnd); bBtIsOn = (SN_BLUETOOTHSTATEPOWERON_BITMASK & GetBtStatus()); if (bBtIsOn) { *************** *** 365,371 **** hFontOld = (HFONT) SelectObject(hDC, hFont); // Wifi ! if (WIFI == nFocus) { SetTextColor(hDC, crTextSelected); } else { SetTextColor(hDC, crText); --- 367,373 ---- hFontOld = (HFONT) SelectObject(hDC, hFont); // Wifi ! if (WIFI == nFocus && bTodayItemIsSelected) { SetTextColor(hDC, crTextSelected); } else { SetTextColor(hDC, crText); *************** *** 391,397 **** // Bt if (BtIsPresent()) { ! if (BT == nFocus) { SetTextColor(hDC, crTextSelected); } else { SetTextColor(hDC, crText); --- 393,409 ---- // Bt if (BtIsPresent()) { ! if (!g_bBtInitialized) { ! g_bBtInitialized = TRUE; ! BtInitialize(g_hWnd); ! bBtIsOn = (SN_BLUETOOTHSTATEPOWERON_BITMASK & GetBtStatus()); ! if (bBtIsOn) { ! SetBtPowerOnMessage(szBtMessage); ! } else { ! SetBtPowerOffMessage(szBtMessage); ! } ! } ! if (BT == nFocus && bTodayItemIsSelected) { SetTextColor(hDC, crTextSelected); } else { SetTextColor(hDC, crText); *************** *** 406,412 **** } else { DrawText(hDC, szBtMessage, -1, &g_rcBtMessage, DT_VCENTER); } ! } SelectObject(hDC, hFontOld); DeleteObject(hFont); --- 418,429 ---- } else { DrawText(hDC, szBtMessage, -1, &g_rcBtMessage, DT_VCENTER); } ! } else { ! if (g_bBtInitialized) { ! g_bBtInitialized = FALSE; ! BtTerminate(); ! } ! } SelectObject(hDC, hFontOld); DeleteObject(hFont);