Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <vector>
- #include <string>
- #include <conio.h>
- #include <cstdlib>
- #include <sstream>
- using namespace std;
- vector<string> windowStyles;
- string LIS="=(HBITMAP)LoadImage(0, (LPCTSTR)";
- string LIE=", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_DEFAULTSIZE);\n";
- string Background[3]={
- "(HBRUSH) COLOR_BACKGROUND;\n",
- "CreatePatternBrush(",
- "CreateSolidBrush(RGB("};
- struct STYLE
- {
- string backTexture;
- string Hwnd;
- string lpszClassName;
- string lpfnWndProc;
- vector<int>styles;
- int hbrBackground;
- string x,y,w,h;
- string title;
- int ChildWindow;
- };
- int main ()
- {
- windowStyles.push_back("WS_BORDER");
- windowStyles.push_back("WS_CAPTION");
- windowStyles.push_back("WS_CHILD");
- windowStyles.push_back("WS_CHILDWINDOW");
- windowStyles.push_back("WS_CLIPCHILDREN");
- windowStyles.push_back("WS_CLIPSIBLINGS");
- windowStyles.push_back("WS_DISABLED");
- windowStyles.push_back("WS_DLGFRAME");
- windowStyles.push_back("WS_GROUP");
- windowStyles.push_back("WS_HSCROLL");
- windowStyles.push_back("WS_ICONIC");
- windowStyles.push_back("WS_MAXIMIZE");
- windowStyles.push_back("WS_MAXIMIZEBOX");
- windowStyles.push_back("WS_MINIMIZE");
- windowStyles.push_back("WS_MINIMIZEBOX");
- windowStyles.push_back("WS_OVERLAPPED");
- windowStyles.push_back("WS_OVERLAPPEDWINDOW");
- windowStyles.push_back("WS_POPUP");
- windowStyles.push_back("WS_POPUPWINDOW");
- windowStyles.push_back("WS_SIZEBOX");
- windowStyles.push_back("WS_SYSMENU");
- windowStyles.push_back("WS_TABSTOP");
- windowStyles.push_back("WS_THICKFRAME");
- windowStyles.push_back("WS_TILED");
- windowStyles.push_back("WS_TILEDWINDOW");
- windowStyles.push_back("WS_VISIBLE");
- windowStyles.push_back("WS_VSCROLL");
- char choice(' ');
- int menu(0);
- string filename;
- vector<STYLE>windows;
- while(choice!='q')
- {
- cout << "n.) Create new style\n";
- cout << "s.) Write styles to .cpp file\n";
- cout << "d.) Delete style\n";
- cout << "q.) Quit\n";
- choice=getch();
- if(choice=='n')
- {
- STYLE newStyle;
- cout << "Style name:";
- getline(cin,newStyle.lpszClassName);
- cout << "Message Procedure Function name:";
- getline(cin,newStyle.lpfnWndProc);
- do
- {
- cout << "Backgroud type\n";
- cout << "1.) Windows Default Background\n";
- cout << "2.) Textured Bitmap\n";
- cout << "3.) Solid Color\n";
- newStyle.hbrBackground=getch();
- newStyle.hbrBackground-=49;
- if(newStyle.hbrBackground==1)
- {
- cout << "Enter path of Bitmap Texture(with quotes and double slashes):";
- getline(cin,newStyle.backTexture);
- }
- if(newStyle.hbrBackground==2)
- {
- cout << "Enter RGB format of colour, seperated by commas (r,g,b):";
- getline(cin,newStyle.backTexture);
- newStyle.backTexture+=")";
- }
- }while(newStyle.hbrBackground<0||newStyle.hbrBackground>2);
- cout << "Enter title of hwnd:";
- getline(cin,newStyle.title);
- cout << "Enter hwnd variable name:";
- getline(cin,newStyle.Hwnd);
- cout << "Enter x position of window:";
- getline(cin,newStyle.x);
- cout << "Enter y position of window:";
- getline(cin,newStyle.y);
- cout << "Enter width of window:";
- getline(cin,newStyle.w);
- cout << "Enter height of window:";
- getline(cin,newStyle.h);
- int s(0);
- choice=' ';
- while(choice!='n')
- {
- system("cls");
- cout << "n.) Next\n";
- cout << "[DOWN].) Scroll down\n";
- cout << "[ UP ].) Scroll UP\n";
- cout << "[ENTER].) Add to styles\n";
- if(newStyle.styles.size()>0)
- {
- cout << windowStyles[newStyle.styles[0]];
- for (int i=1; i<newStyle.styles.size(); i++)
- {
- cout << "|" << windowStyles[newStyle.styles[i]];
- }
- }
- cout << endl << ">>";
- for (int i=s; i<s+10; i++)
- {
- cout << "\t" << windowStyles[i%windowStyles.size()] << endl;
- }
- choice=getch();
- if(choice==(char)72)s--;
- if(choice==(char)80)s++;
- if(choice==(char)13)newStyle.styles.push_back(s%windowStyles.size());
- }
- system("cls");
- cout << "Windows\n";
- cout << "0.) Desktop\n";
- for (int i=0; i<windows.size(); i++)
- {
- cout << i+1 << ".) " << windows[i].title << endl;
- }
- cout << "Child of:";
- string str;
- getline(cin,str);
- stringstream(str)>>newStyle.ChildWindow;
- windows.push_back(newStyle);
- }
- if(choice=='s')
- {
- cout << "Enter File Name:";
- getline(cin,filename);
- vector<string> fileData;
- fileData.push_back("#include <windows.h>\n");
- fileData.push_back("#include <vector>\n");
- fileData.push_back("using namespace std;\n");
- for (int i=0; i<windows.size(); i++)
- {
- fileData.push_back("LRESULT CALLBACK ");
- fileData.push_back(windows[i].lpfnWndProc);
- fileData.push_back(" (HWND, UINT, WPARAM, LPARAM);\n");
- }
- fileData.push_back("vector<char *> ClassNames;\n");
- fileData.push_back("int WINAPI WinMain (HINSTANCE hThisInstance,HINSTANCE hPrevInstance,LPSTR lpszArgument,int nCmdShow)\n{\n");
- for (int i=0; i<windows.size(); i++)
- {
- fileData.push_back("\tClassNames.push_back(\"");
- fileData.push_back(windows[i].lpszClassName);
- fileData.push_back("\");\n");
- }
- for (int i=0; i<windows.size(); i++)
- {
- if(windows[i].hbrBackground==1)
- {
- fileData.push_back("\tHBITMAP ");
- string Texture="texture";
- Texture+=(char)(i+'A');
- fileData.push_back(Texture);
- fileData.push_back(LIS);
- fileData.push_back(windows[i].backTexture);
- fileData.push_back(LIE);
- windows[i].backTexture=Texture;
- }
- }
- for (int i=0; i<windows.size(); i++)
- {
- fileData.push_back("\tHWND ");
- fileData.push_back(windows[i].Hwnd);
- fileData.push_back(";\n");
- }
- fileData.push_back("\tMSG messages;\n");
- for (int i=0; i<windows.size(); i++)
- {
- fileData.push_back("\tWNDCLASSEX ");
- string Wndcl="wincl";
- Wndcl+=(char)(i+'A');
- Wndcl+=";\n";
- fileData.push_back(Wndcl);
- }
- for (int i=0; i<windows.size(); i++)
- {
- string Wndcl="\twincl";
- Wndcl+=(char)(i+'A');
- fileData.push_back(Wndcl);
- fileData.push_back(".hInstance = hThisInstance;\n");
- fileData.push_back(Wndcl);
- fileData.push_back(".lpszClassName = ClassNames[");
- string str;
- char Buffer[10];
- str=itoa(i,Buffer,10);
- fileData.push_back(str);
- fileData.push_back("];\n");
- fileData.push_back(Wndcl);
- fileData.push_back(".lpfnWndProc = ");
- fileData.push_back(windows[i].lpfnWndProc);
- fileData.push_back(";\n");
- fileData.push_back(Wndcl);
- fileData.push_back(".style = CS_DBLCLKS;\n");
- fileData.push_back(Wndcl);
- fileData.push_back(".cbSize = sizeof (WNDCLASSEX);\n");
- fileData.push_back(Wndcl);
- fileData.push_back(".hIcon = LoadIcon (NULL, IDI_APPLICATION);\n");
- fileData.push_back(Wndcl);
- fileData.push_back(".hIconSm = LoadIcon (NULL, IDI_APPLICATION);\n");
- fileData.push_back(Wndcl);
- fileData.push_back(".hCursor = LoadCursor (NULL, IDC_ARROW);\n");
- fileData.push_back(Wndcl);
- fileData.push_back(".lpszMenuName = NULL;\n");
- fileData.push_back(Wndcl);
- fileData.push_back(".cbClsExtra = 0;\n");
- fileData.push_back(Wndcl);
- fileData.push_back(".cbWndExtra = 0;\n");
- fileData.push_back(Wndcl);
- fileData.push_back(".hbrBackground = ");
- fileData.push_back(Background[windows[i].hbrBackground]);
- if(windows[i].hbrBackground!=0)
- {
- fileData.push_back(windows[i].backTexture);
- fileData.push_back(");\n\n");
- }
- Wndcl="wincl";
- Wndcl+=(char)(i+'A');
- fileData.push_back("\tif (!RegisterClassEx (&");
- fileData.push_back(Wndcl);
- fileData.push_back("))return 0;\n\n");
- }
- for(int i=0; i<windows.size(); i++)
- {
- string Wndcl="wincl";
- Wndcl+=(char)(i+'A');
- fileData.push_back("\t");
- fileData.push_back(windows[i].Hwnd);
- fileData.push_back(" = CreateWindowEx (0,\"");
- fileData.push_back(windows[i].lpszClassName);
- fileData.push_back("\",\"");
- fileData.push_back(windows[i].title);
- fileData.push_back("\",");
- if(windows[i].styles.size()>0)
- {
- fileData.push_back(windowStyles[windows[i].styles[0]]);
- for (int j=1; j<windows[i].styles.size(); j++)
- {
- fileData.push_back("|");
- fileData.push_back(windowStyles[windows[i].styles[j]]);
- }
- }
- fileData.push_back(",");
- fileData.push_back(windows[i].x);
- fileData.push_back(",");
- fileData.push_back(windows[i].y);
- fileData.push_back(",");
- fileData.push_back(windows[i].w);
- fileData.push_back(",");
- fileData.push_back(windows[i].h);
- fileData.push_back(",");
- if(windows[i].ChildWindow==0)fileData.push_back("HWND_DESKTOP");
- else
- {
- fileData.push_back(windows[windows[i].ChildWindow-1].Hwnd);
- }
- fileData.push_back(",NULL,hThisInstance,NULL);\n\n");
- }
- fileData.push_back("\twhile (GetMessage (&messages, NULL, 0, 0))\n");
- fileData.push_back("\t{\n");
- fileData.push_back("\t\tTranslateMessage(&messages);\n");
- fileData.push_back("\t\tDispatchMessage(&messages);\n");
- fileData.push_back("\t}\n");
- fileData.push_back("\treturn messages.wParam;\n");
- fileData.push_back("}\n\n\n");
- for (int i=0; i<windows.size(); i++)
- {
- fileData.push_back("LRESULT CALLBACK ");
- fileData.push_back(windows[i].lpfnWndProc);
- fileData.push_back(" (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)\n");
- fileData.push_back("{\n");
- fileData.push_back("\tswitch (message)\n\t{\n");
- fileData.push_back("\t\tcase WM_DESTROY:\n");
- fileData.push_back("\t\t\tPostQuitMessage (0);\n");
- fileData.push_back("\t\t\tbreak;\n\n");
- fileData.push_back("\t\tcase WM_PAINT:\n");
- fileData.push_back("\t\t{\n\n");
- fileData.push_back("\t\t\tbreak;\n");
- fileData.push_back("\t\t}\n\n");
- fileData.push_back("\t\tdefault: return DefWindowProc (hwnd, message, wParam, lParam);\n");
- fileData.push_back("\t}\n\treturn 0;\n}\n\n");
- }
- ofstream out(filename.c_str());
- for (int i=0; i<fileData.size(); i++)
- {
- cout << fileData[i];
- out << fileData[i];
- }
- out.close();
- }
- if(choice=='d')
- {
- for (int i=0 ;i<windows.size(); i++)
- {
- cout << i << ".)" << windows[i].title << endl;
- }
- }
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment