📄 qssreadbotdlg.cpp
字号:
WS_OVERLAPPEDWINDOW, // 窗口风格
CW_USEDEFAULT, //
CW_USEDEFAULT, // 窗口作上角坐标为缺省值
CW_USEDEFAULT,
CW_USEDEFAULT, // 窗口宽高为缺省值
NULL, // 此窗口无主窗口
NULL, // 此主窗口无菜单
hInstance, // 创建此窗口的应用程序的当前句柄
NULL ) ; // 消息 WM_CREATE 通过 CREATESTRUCT 结构传递过来的 lParam 参数
if ( NULL == hWnd )
{
DWORD dwRet = GetLastError() ;
return FALSE ;
}
// 显示窗口( nShowCmd )
//ShowWindow( hWnd, SW_SHOWMAXIMIZED ) ; // 最大化窗口
//ShowWindow( hWnd, SW_SHOW ) ;
// 绘制用户区
//UpdateWindow( hWnd ) ;
SetTimer( hWnd, ID_TIMER8, uTimerElapse, NULL ) ;
// 消息循环
while( GetMessage( &Msg, NULL, 0, 0 ) )
{
TranslateMessage( &Msg ) ;
DispatchMessage( &Msg ) ;
}
return Msg.wParam ; // 消息循环结束(程序终止)时将消息返回系统
}
//===============================================================
LRESULT CALLBACK Thread9( void )
{
HINSTANCE hInstance = AfxGetApp()->m_hInstance ;
// 主窗口操作
HWND hWnd = NULL ;
LPCTSTR lpszClassName = "QssThread9" ;
LPCTSTR lpszTitle = "QssThread9" ;
// 设置背景画刷( WHITE_BRUSH )
HBRUSH hBrush = (HBRUSH)GetStockObject( GRAY_BRUSH );
HICON hIcon = LoadIcon( NULL, IDI_APPLICATION );
HCURSOR hCursor = LoadCursor( NULL, IDC_ARROW );
MSG Msg;
WNDCLASS wndClass;
// 窗口类定义
wndClass.cbClsExtra = 0;
wndClass.cbWndExtra = 0;
wndClass.hbrBackground = hBrush;
wndClass.hCursor = hCursor;
wndClass.hIcon = hIcon;
wndClass.hInstance = hInstance;
wndClass.lpfnWndProc = (WNDPROC)OnThreadProc9;
wndClass.lpszClassName = lpszClassName ;
wndClass.lpszMenuName = NULL;
wndClass.style = CS_HREDRAW|CS_VREDRAW;
// 窗口类注册
if ( !RegisterClass( &wndClass ))
{
MessageBeep( 0 ) ;
return FALSE ;
}
// 创建窗口
hWnd = CreateWindow( lpszClassName, // 窗口类名
lpszTitle, // 窗口实例标题名
WS_OVERLAPPEDWINDOW, // 窗口风格
CW_USEDEFAULT, //
CW_USEDEFAULT, // 窗口作上角坐标为缺省值
CW_USEDEFAULT,
CW_USEDEFAULT, // 窗口宽高为缺省值
NULL, // 此窗口无主窗口
NULL, // 此主窗口无菜单
hInstance, // 创建此窗口的应用程序的当前句柄
NULL ) ; // 消息 WM_CREATE 通过 CREATESTRUCT 结构传递过来的 lParam 参数
if ( NULL == hWnd )
{
DWORD dwRet = GetLastError() ;
return FALSE ;
}
// 显示窗口( nShowCmd )
//ShowWindow( hWnd, SW_SHOWMAXIMIZED ) ; // 最大化窗口
//ShowWindow( hWnd, SW_SHOW ) ;
// 绘制用户区
//UpdateWindow( hWnd ) ;
SetTimer( hWnd, ID_TIMER9, uTimerElapse, NULL ) ;
// 消息循环
while( GetMessage( &Msg, NULL, 0, 0 ) )
{
TranslateMessage( &Msg ) ;
DispatchMessage( &Msg ) ;
}
return Msg.wParam ; // 消息循环结束(程序终止)时将消息返回系统
}
//===============================================================
LRESULT CALLBACK Thread10( void )
{
HINSTANCE hInstance = AfxGetApp()->m_hInstance ;
// 主窗口操作
HWND hWnd = NULL ;
LPCTSTR lpszClassName = "QssThread10" ;
LPCTSTR lpszTitle = "QssThread10" ;
// 设置背景画刷( WHITE_BRUSH )
HBRUSH hBrush = (HBRUSH)GetStockObject( GRAY_BRUSH );
HICON hIcon = LoadIcon( NULL, IDI_APPLICATION );
HCURSOR hCursor = LoadCursor( NULL, IDC_ARROW );
MSG Msg;
WNDCLASS wndClass;
// 窗口类定义
wndClass.cbClsExtra = 0;
wndClass.cbWndExtra = 0;
wndClass.hbrBackground = hBrush;
wndClass.hCursor = hCursor;
wndClass.hIcon = hIcon;
wndClass.hInstance = hInstance;
wndClass.lpfnWndProc = (WNDPROC)OnThreadProc10;
wndClass.lpszClassName = lpszClassName ;
wndClass.lpszMenuName = NULL;
wndClass.style = CS_HREDRAW|CS_VREDRAW;
// 窗口类注册
if ( !RegisterClass( &wndClass ))
{
MessageBeep( 0 ) ;
return FALSE ;
}
// 创建窗口
hWnd = CreateWindow( lpszClassName, // 窗口类名
lpszTitle, // 窗口实例标题名
WS_OVERLAPPEDWINDOW, // 窗口风格
CW_USEDEFAULT, //
CW_USEDEFAULT, // 窗口作上角坐标为缺省值
CW_USEDEFAULT,
CW_USEDEFAULT, // 窗口宽高为缺省值
NULL, // 此窗口无主窗口
NULL, // 此主窗口无菜单
hInstance, // 创建此窗口的应用程序的当前句柄
NULL ) ; // 消息 WM_CREATE 通过 CREATESTRUCT 结构传递过来的 lParam 参数
if ( NULL == hWnd )
{
DWORD dwRet = GetLastError() ;
return FALSE ;
}
// 显示窗口( nShowCmd )
//ShowWindow( hWnd, SW_SHOWMAXIMIZED ) ; // 最大化窗口
//ShowWindow( hWnd, SW_SHOW ) ;
// 绘制用户区
//UpdateWindow( hWnd ) ;
SetTimer( hWnd, ID_TIMER10, uTimerElapse, NULL ) ;
// 消息循环
while( GetMessage( &Msg, NULL, 0, 0 ) )
{
TranslateMessage( &Msg ) ;
DispatchMessage( &Msg ) ;
}
return Msg.wParam ; // 消息循环结束(程序终止)时将消息返回系统
}
////////////////////////////////////////////////////////////////////////////////////
//================================================================================
//
// 线程处理函数 1 处理 QSS 1 连接的数据
//
LRESULT WINAPI OnThreadProc1( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam )
{
int nRet = -1 ;
HRESULT hr ;
hWnd1 = hWnd ;
switch( message )
{
case WM_CREATE:
hr = CoInitializeEx(NULL, COINIT_MULTITHREADED); /// COINIT_APARTMENTTHREADED
if ( S_OK != hr )
AfxMessageBox("线程一组件库初始化错误!") ;
break ;
case WM_TIMER:
switch( wParam )
{
case ID_TIMER1:
nRet = QSSReadWrite( 1, strQSS[0] ) ;
break ;
}
break ;
case WM_DESTROY:
//
//SendMessage( NULL,
if ( KillTimer( hWnd, ID_TIMER1 ) == 0 )
AfxMessageBox("关闭定时器 1 错误") ;
CoUninitialize() ;
PostQuitMessage( 0 ) ;
break ;
default:
return DefWindowProc( hWnd, message, wParam, lParam ) ;
}
return 0 ;
}
//================================================================================
//
// 线程处理函数 2 处理 QSS 2 连接的数据
//
// ODBC 连接数据库
LRESULT WINAPI OnThreadProc2( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam )
{
int nRet = -1 ;
HRESULT hr ;
hWnd2 = hWnd ;
switch( message )
{
case WM_CREATE:
hr = CoInitializeEx(NULL, COINIT_MULTITHREADED); /// COINIT_APARTMENTTHREADED
if ( S_OK != hr )
AfxMessageBox("线程二组件库初始化错误!") ;
break ;
case WM_TIMER:
switch( wParam )
{
case ID_TIMER2:
nRet = QSSReadWrite( 2, strQSS[1] ) ;
break ;
}
break ;
case WM_DESTROY:
if ( KillTimer( hWnd, ID_TIMER2 ) == 0 )
AfxMessageBox("关闭定时器 2 错误") ;
CoUninitialize() ;
PostQuitMessage( 0 ) ;
break ;
default:
return DefWindowProc( hWnd, message, wParam, lParam ) ;
}
return 0 ;
}
//================================================================================
//
// 线程处理函数 3 处理 QSS 3 连接的数据
//
// ODBC 连接数据库
LRESULT WINAPI OnThreadProc3( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam )
{
int nRet = -1 ;
HRESULT hr ;
hWnd3 = hWnd ;
switch( message )
{
case WM_CREATE:
hr = CoInitializeEx(NULL, COINIT_MULTITHREADED); /// COINIT_APARTMENTTHREADED
if ( S_OK != hr )
AfxMessageBox("线程三组件库初始化错误!") ;
break ;
case WM_TIMER:
switch( wParam )
{
case ID_TIMER3:
//MessageBox( NULL, "WM_TIMER","",MB_OK) ;
nRet = QSSReadWrite( 3, strQSS[2] ) ;
break ;
}
break ;
case WM_DESTROY:
if ( KillTimer( hWnd, ID_TIMER3 ) == 0 )
AfxMessageBox("关闭定时器 3 错误") ;
CoUninitialize() ;
PostQuitMessage( 0 ) ;
break ;
default:
return DefWindowProc( hWnd, message, wParam, lParam ) ;
}
return 0 ;
}
//================================================================================
//
// 线程处理函数 4 处理 QSS 4 连接的数据
//
// ODBC 连接数据库
LRESULT WINAPI OnThreadProc4( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam )
{
int nRet = -1 ;
HRESULT hr ;
hWnd4 = hWnd ;
switch( message )
{
case WM_CREATE:
hr = CoInitializeEx(NULL, COINIT_MULTITHREADED); /// COINIT_APARTMENTTHREADED
if ( S_OK != hr )
AfxMessageBox("线程四组件库初始化错误!") ;
break ;
case WM_TIMER:
switch( wParam )
{
case ID_TIMER4:
//MessageBox( NULL, "WM_TIMER","",MB_OK) ;
nRet = QSSReadWrite( 4, strQSS[3] ) ;
break ;
}
break ;
case WM_DESTROY:
if ( KillTimer( hWnd, ID_TIMER4 ) == 0 )
AfxMessageBox("关闭定时器 4 错误") ;
CoUninitialize() ;
PostQuitMessage( 0 ) ;
break ;
default:
return DefWindowProc( hWnd, message, wParam, lParam ) ;
}
return 0 ;
}
//================================================================================
//
// 线程处理函数 5 处理 QSS 5 连接的数据
//
// ODBC 连接数据库
LRESULT WINAPI OnThreadProc5( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam )
{
int nRet = -1 ;
HRESULT hr ;
hWnd5 = hWnd ;
switch( message )
{
case WM_CREATE:
hr = CoInitializeEx(NULL, COINIT_MULTITHREADED); /// COINIT_APARTMENTTHREADED
if ( S_OK != hr )
AfxMessageBox("线程五组件库初始化错误!") ;
break ;
case WM_TIMER:
switch( wParam )
{
case ID_TIMER5:
//MessageBox( NULL, "WM_TIMER","",MB_OK) ;
nRet = QSSReadWrite( 5, strQSS[4] ) ;
break ;
}
break ;
case WM_DESTROY:
if ( KillTimer( hWnd, ID_TIMER5 ) == 0 )
AfxMessageBox("关闭定时器 5 错误") ;
CoUninitialize() ;
PostQuitMessage( 0 ) ;
break ;
default:
return DefWindowProc( hWnd, message, wParam, lParam ) ;
}
return 0 ;
}
//================================================================================
//
// 线程处理函数 6 处理 QSS 6 连接的数据
//
// ODBC 连接数据库
LRESULT WINAPI OnThreadProc6( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam )
{
int nRet = -1 ;
HRESULT hr ;
hWnd6 = hWnd ;
switch( message )
{
case WM_CREATE:
hr = CoInitializeEx(NULL, COINIT_MULTITHREADED); /// COINIT_APARTMENTTHREADED
if ( S_OK != hr )
AfxMessageBox("线程六组件库初始化错误!") ;
break ;
case WM_TIMER:
switch( wParam )
{
case ID_TIMER6:
//MessageBox( NULL, "WM_TIMER","",MB_OK) ;
nRet = QSSReadWrite( 6, strQSS[5] ) ;
break ;
}
break ;
case WM_DESTROY:
if ( KillTimer( hWnd, ID_TIMER6 ) == 0 )
AfxMessageBox("关闭定时器 6 错误") ;
CoUninitialize() ;
PostQuitMessage( 0 ) ;
break ;
default:
return DefWindowProc( hWnd, message, wParam, lParam ) ;
}
return 0 ;
}
//================================================================================
//
// 线程处理函数 7 处理 QSS 7 连接的数据
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -