• 创建工作窗口


    //创建内部工作窗口, 创建失败 ret == NULL, 否则是有效的窗口句柄
    //asz_name 窗口类名称 WndProc 窗口过程 asz_wnd_name 窗口名称
    //APP关闭时, 需要调用 DestroyWindow() 关闭窗口 
    inline HWND TfxWorkWindow(const char* asz_name,
    						  WNDPROC  WndProc, const char* asz_wnd_name = NULL );     
    
    //创建内部工作窗口, 创建失败 ret == NULL, 否则是有效的窗口句柄
    //asz_name 窗口类名称 WndProc 窗口过程 asz_wnd_name 窗口名称
    //APP关闭时, 需要调用 DestroyWindow() 关闭窗口 
    HWND TfxWorkWindow(const char* asz_name,
    				   WNDPROC  WndProc, const char* asz_wnd_name)
    {
    	HWND		hWnd=NULL;
    	WNDCLASSEX	wcex={0};
    
    	//获得当前应用程序的句柄
    	HINSTANCE	hInstance = GetModuleHandle(NULL);
    	if ( hInstance == NULL ) return NULL;
    
    	wcex.cbSize = sizeof(WNDCLASSEX); 
    
    	//设置回调函数
    	wcex.lpfnWndProc	= (WNDPROC)WndProc;	
    	wcex.style			= CS_HREDRAW | CS_VREDRAW;
    	wcex.cbClsExtra		= 0;
    	wcex.cbWndExtra		= 0;
    	wcex.hInstance		= hInstance;
    	wcex.hbrBackground	= (HBRUSH)(COLOR_WINDOW+1);
    	wcex.lpszClassName	= asz_name;
    
    	WNDCLASS wndclass={0}; 
    	if ( GetClassInfo(hInstance, asz_name, &wndclass) == NULL ) 
    		if ( RegisterClassEx(&wcex) == NULL ) return (NULL);
    
    	if (  ( asz_wnd_name == NULL ) || (  strcmp(asz_wnd_name, "" ) == 0 ) )
    		hWnd = CreateWindow(asz_name, "", WS_OVERLAPPEDWINDOW,
    		CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
    	else
    		hWnd = CreateWindow(asz_name, asz_wnd_name, WS_OVERLAPPEDWINDOW,
    		CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
    
    	return hWnd;
    }
    

      

  • 相关阅读:
    jni中调用java方法获取当前apk的签名文件md5值
    Android底层驱动开发(一)
    作为原作者你能忍吗?
    SUN dataset图像数据集下载
    计算机视觉和图像处理常用的一些标准图片
    Docker基础技术:DeviceMapper
    Docker基础技术:AUFS
    Docker基础技术:Linux CGroup
    Docker基础技术:Linux Namespace(下)
    Docker基础技术:Linux Namespace(上)
  • 原文地址:https://www.cnblogs.com/jlyg/p/10155567.html
Copyright © 2020-2023  润新知