hi,this is part of my code.in this code when i execute the code first time it will create one borderless window in which the command line arguments will scroll.when i execute the same code second time in presence of the previous banner running it should close the previous banner and open the new window and the arguments whatever i pass will scroll in that newly created banner.
i want single instance of banner. i also want to know how to pass the arguments to procedure.
Code:
using std::string;
using namespace std;
WNDCLASSEX WndCls;
HWND hwnd;
LRESULT CALLBACK WindProcedure(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
CString string1,string2="",string3="";
string pre_lines="";
LPWSTR *szArglist; //holds commandline arguments
int nArgs;
int i,j,k,l;
INT WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
//string1.Format("%-0s",lpCmdLine);
static char szAppName[] = "GDISuite";
MSG Msg;
WndCls.cbSize = sizeof(WndCls);
WndCls.style = CS_OWNDC | CS_VREDRAW | CS_HREDRAW;
WndCls.lpfnWndProc = WindProcedure;
WndCls.cbClsExtra = 0;
WndCls.cbWndExtra = 0;
WndCls.hInstance = hInstance;
WndCls.hIcon = LoadIcon(NULL, IDI_APPLICATION);
WndCls.hCursor = LoadCursor(NULL, IDC_ARROW);
WndCls.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
WndCls.lpszMenuName = NULL;
WndCls.lpszClassName = szAppName;
WndCls.hIconSm = LoadIcon(hInstance, IDI_APPLICATION);
RegisterClassEx(&WndCls);
//creates window
CreateWindowEx(WS_EX_OVERLAPPEDWINDOW | WS_EX_TOPMOST,
szAppName,
"GDI Accessories and Tools",
WS_POPUPWINDOW | WS_VISIBLE,
0,
0,
1500,
50,
NULL,
NULL,
hInstance,
NULL);
while( GetMessage(&Msg, NULL, 0, 0) )
{
TranslateMessage(&Msg);
DispatchMessage( &Msg);
}
return static_cast<int>(Msg.wParam);
}
LRESULT CALLBACK WindProcedure(HWND hWnd, UINT Msg,
WPARAM wParam, LPARAM lParam)
{
HDC hDC;
PAINTSTRUCT Ps;
int a;
switch(Msg)
{
case WM_PAINT:
szArglist = CommandLineToArgvW(GetCommandLineW(), &nArgs);
if( NULL == szArglist )
{
wprintf(L"CommandLineToArgvW failed\n");
return 0;
}
if( (CString)szArglist[1]=="a")
{
/*if(FindWindow("szAppName","GDI Accessories and Tools")!=NULL)
{
DestroyWindow(hWnd);
}*/
ifstream myfile7;
myfile7.open ("C:\\cmd.txt");
//sText="EOD has not been started yet";
if(myfile7.is_open())
{
while (! myfile7.eof() )
{
string pline="";
getline (myfile7,pline);
pre_lines+=(pline+"\n");
}
}
myfile7.close();
for( i=2; i<nArgs; i++)
{
string1=(CString)szArglist[i];
string2=string2+" "+string1;
}
CString str=pre_lines.c_str();
string3=str+" "+string2;
ofstream myfile4;
myfile4.open("C:\\cmd.txt");
if (myfile4.is_open())
{
myfile4 << pre_lines << string(string2);
}
myfile4.close();
do
{
hDC = BeginPaint(hWnd, &Ps);
TextOut(hDC, 10, 1,"Priority 1 Issues:",20);
for(a=1;a<1100;a++)
{
TextOut(hDC, a+10, 18,string2,string2.GetLength());
EndPaint(hWnd, &Ps);
Sleep(10);
}
}while(!_kbhit());
}
else if( (CString)szArglist[1]=="r")
{
ifstream myfile7;
myfile7.open ("C:\\cmd.txt");
//sText="EOD has not been started yet";
if(myfile7.is_open())
{
while (! myfile7.eof() )
{
string pline="";
getline (myfile7,pline);
pre_lines+=(pline+"\n");
}
}
myfile7.close();
CString str1=pre_lines.c_str();
for( i=2; i<nArgs; i++)
{
string1=(CString)szArglist[i];
string2=string2+string1;
//char s[]=(string)str1;
//j=InStr(string1,str1)-1;
k = string2.GetLength();
j=str1.Find(string2);
if (j<k)
{
for(l=j ;l<k+1;l++)
str1.SetAt(j,' ');
if(j!=0)
{
string1="";
}
string2=string1;
}
else if(j>k)
{
for(l=j ;l<j+k+1;l++)
str1.SetAt(l,' ');
if(j!=0)
{
string1="";
}
string2=string1;
}
else
{
AfxMessageBox("The entered String do not match");
}
}
CString str=pre_lines.c_str();
string3=str+" "+string2;
ofstream myfile4;
myfile4.open("C:\\cmd.txt");
if (myfile4.is_open())
{
//myfile4 << pre_lines << string(str1);
myfile4 << string(str1);
}
myfile4.close();
do
{
hDC = BeginPaint(hWnd, &Ps);
TextOut(hDC, 10, 1,"Priority 1 Issues:",20);
for(a=1;a<1100;a++)
{
TextOut(hDC, a+10, 18,str1,str1.GetLength());
EndPaint(hWnd, &Ps);
Sleep(10);
}
}while(!_kbhit());
}
else
{
for( i=1; i<nArgs; i++)
{
string1=(CString)szArglist[i];
string2=string2+string1;
}
ofstream myfile4;
myfile4.open("C:\\cmd.txt");
if (myfile4.is_open())
{
myfile4 << string(string2);
}
myfile4.close();
do
{
hDC = BeginPaint(hWnd, &Ps);
for(a=1;a<1100;a++)
{
TextOut(hDC, a+10, 6,string2,string2.GetLength());
EndPaint(hWnd, &Ps);
Sleep(10);
}
}while(!_kbhit());
break;
}
case WM_DESTROY:
PostQuitMessage(WM_QUIT);
break;
default:
return DefWindowProc(hWnd, Msg, wParam, lParam);
}
return 0;
}