windowminbox.cpp

来自「追加最小化按钮: 利用JNI」· C++ 代码 · 共 42 行

CPP
42
字号

#include "WindowMinbox.h"
#include <Windows.h>


/*
 * Class:     WindowMinbox
 * Method:    changeWindowStyle
 * Signature: (Ljava/lang/String;)Z
 */
JNIEXPORT jboolean JNICALL Java_WindowMinbox_changeWindowStyle
  (JNIEnv *env, jclass obj, jstring jsTitle)
{
    BOOL bRet = FALSE;
    // get hWnd from win-title 
    const char* cWindowTitle = env->GetStringUTFChars(jsTitle, 0);
    HWND m_hWnd = FindWindow(NULL, cWindowTitle);
    env->ReleaseStringUTFChars(jsTitle, cWindowTitle);

    // set win style
    if ( m_hWnd > 0 ) {
        // get old style to create new style
        long lWSIndex = GWL_STYLE;
        long lOldStyle = GetWindowLong(m_hWnd, lWSIndex);
        long lNewStyle = lOldStyle | WS_MINIMIZEBOX ;

        // Set Style and update to redraw
        if ( SetWindowLong(m_hWnd, lWSIndex, lNewStyle) &&   // set style
             UpdateWindow(m_hWnd) ) {                        // update window
            SetForegroundWindow(m_hWnd);
            SetFocus(m_hWnd);
            bRet = TRUE;
        }
    }

    return bRet;
}

/* compile
cl -LD -IC:\j2sdk1.4.2_11\include -IC:\j2sdk1.4.2_11\include/win32    -I"C:\Program Files\Microsoft Visual C++ Toolkit 2003\include"  WindowMinbox.cpp -o WinMinbox.dll "C:\Program Files\Microsoft Platform SDK\Lib\user32.lib"
*/

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?