Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

No Sysmenu

Posted on 1998-12-01
9
Medium Priority
?
338 Views
Last Modified: 2013-12-03
Is it possible to create a WIN32 app with a window having a title bar and a [X] close button BUT NO system menu.
Or do I have to have a dialog box as my main.

Thanks,
0
Comment
Question by:okuru
  • 4
  • 3
  • 2
9 Comments
 
LVL 13

Expert Comment

by:Mirkwood
ID: 1416532
Remove style WS_SYSMENU from CreateWindow
0
 
LVL 22

Expert Comment

by:nietod
ID: 1416533
Just don't specify the WS_SYSMENU window style.  You probably want to specify WS_CAPTION WS_OVERLAPPED WS_THICKFRAME and maybe WS_MINIMIZE and WS_MAXIMIZE.

Let me know if you have questions.  (If that doesn't work, There is another way, but i think that will)
0
 
LVL 13

Expert Comment

by:Mirkwood
ID: 1416534
Damn, I pressed comment iso answer
0
Veeam and MySQL: How to Perform Backup & Recovery

MySQL and the MariaDB variant are among the most used databases in Linux environments, and many critical applications support their data on them. Watch this recorded webinar to find out how Veeam Backup & Replication allows you to get consistent backups of MySQL databases.

 

Author Comment

by:okuru
ID: 1416535
Does not work - I want a window with a title bar, a [X] close button but NO icon/sysmenu...

0
 
LVL 22

Accepted Solution

by:
nietod earned 200 total points
ID: 1416536
As I said, there was a possibility that that would not work, try it again with the same styles but also specify a WS_DLGFRAME.  (Ignore the documentation for WS_DLGFRAME that says you can't have a title with it.  You can.  That is left over from windows 3.1)
0
 
LVL 22

Expert Comment

by:nietod
ID: 1416537
I create such a window in my programs.  The styles I use are

 WS_POPUPWINDOW | WS_DLGFRAME | WS_THICKFRAME | WS_OVERLAPPED | WS_CLIPSIBLINGS

You can remove the clip sibblings style.  My window has a caption although I didn not specify the WS_CAPTION style.  It does have a close box but does not have minimize and maximize buttons.  (these can be added with the WS_MINIMUZE and WS_MAXIMIZEstyles)  It has no system menu.  
0
 

Author Comment

by:okuru
ID: 1416538
With this I get a window with title bar no close button, if I add sysmenu I get an icon/menu ???


#include <windows.h>

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
                   PSTR szCmdLine, int iCmdShow) {

static char szAppName[] = "Test";
HWND hwnd;
MSG msg;
WNDCLASSEX wndclass;

wndclass.cbSize            = sizeof(wndclass);
wndclass.style            = CS_HREDRAW | CS_VREDRAW;
wndclass.lpfnWndProc      = WndProc;
wndclass.cbClsExtra      = 0;
wndclass.cbWndExtra      = 0;
wndclass.hInstance      = hInstance;
wndclass.hIcon            = NULL;
wndclass.hCursor      = LoadCursor(NULL, IDC_ARROW);
wndclass.hbrBackground      = (HBRUSH) GetStockObject (LTGRAY_BRUSH);
wndclass.lpszMenuName      = NULL;
wndclass.lpszClassName      = szAppName;
wndclass.hIconSm      = NULL;

RegisterClassEx(&wndclass);

hwnd = CreateWindow(szAppName,
" Test",
WS_POPUPWINDOW |
WS_DLGFRAME |
WS_THICKFRAME |
WS_OVERLAPPED |
WS_CLIPSIBLINGS,
CW_USEDEFAULT,
CW_USEDEFAULT,
150,
50,
NULL,
NULL,
hInstance,
NULL);

ShowWindow(hwnd, iCmdShow);
UpdateWindow(hwnd);

while (GetMessage(&msg, NULL, 0, 0)) {
      TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return msg.wParam;
}

LRESULT CALLBACK WndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam) {
      HDC                  hdc;
      PAINTSTRUCT      ps;
      switch (iMsg) {
            case WM_CREATE:
                  return 0;

        case WM_PAINT :
                  hdc = BeginPaint(hwnd, &ps);
                  EndPaint (hwnd, &ps);
            return 0;

            case WM_DESTROY:
                  PostQuitMessage (0);
            return 0 ;
      }
      return DefWindowProc(hwnd, iMsg, wParam, lParam);
}

0
 
LVL 22

Expert Comment

by:nietod
ID: 1416539
I have a close button on mine.  However, I use CreateWindowEx() and specify two extended styles.  WS_EX_DLGMODALFRAME and WS_EX_WINDOWEDGE.

You might try that or you might try adding the WS_CAPTION style.  (Which probably should have been there, but actually isn't in my code.)
0
 

Author Comment

by:okuru
ID: 1416540
Thanks
CreateWindowEx() does it, CreateWindow() does not.
 
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article describes how to programmatically preset the "Pages per Sheet" option that's available with most printer drivers.   This setting lets you do "n-Up" printing, where two, four, or more pages are printed on each sheet of paper. If your …
As more and more people are shifting to the latest .Net frameworks, the windows presentation framework is gaining importance by the day. Many people are now turning to WPF controls to provide a rich user experience. I have been using WPF controls fo…
This is Part 3 in a 3-part series on Experts Exchange to discuss error handling in VBA code written for Excel. Part 1 of this series discussed basic error handling code using VBA. http://www.experts-exchange.com/videos/1478/Excel-Error-Handlin…
In response to a need for security and privacy, and to continue fostering an environment members can turn to for support, solutions, and education, Experts Exchange has created anonymous question capabilities. This new feature is available to our Pr…

971 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question