|
Yes, I was pointing out what was, not what should be and disagree with you anyway on that point.
char and wchar_t ultimately are just numbers and have no intrinsic meaning on their own--the compiler has no idea what encoding scheme you are using. Is it UTF-16BE, UTF-16LE? Even char doesn't imply what the code page is.
|
|
|
|
|
I want to use multiThread to read and write database,but I do not how how to prevent the thread from reading db again and again,
for example, I want use Thread1 to read record 1 - 100,and use Thread2 to read record 101-200,but I don`t know how to control different threads to read different data?
|
|
|
|
|
Thread synchronization is a big topic. Have a look at MSDN [^].
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
caiguosen wrote: ...but I don`t know how to control different threads to read different data?
Is thread 2 not supposed to read until thread 1 finishes?
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Man who follows car will be exhausted." - Confucius
|
|
|
|
|
they can read together,but the content which thread one reads can not be read by thread2.
there will be many threads, just like client/server mode,
but how can i control these threads in order to let them read different data from the same database.
|
|
|
|
|
I've never tried anything like this, but my first attempt would be to set some sort of filter (i.e., WHERE clause), like:
SELECT * FROM table WHERE 1 <= rownum AND rownum <= 100
SELECT * FROM table WHERE 101 <= rownum AND rownum <= 200
SELECT * FROM table WHERE 201 <= rownum AND rownum <= 300 Does that sound plausible?
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Man who follows car will be exhausted." - Confucius
|
|
|
|
|
I have a CFormView where I want to display an image and show some buttons over the image. I get the device context for the view, create a compatible bitmap, use the LPPICTURE Render(*) function to display the image file into the DC, then use BitBlt(*) of CDC to display the image. The buttons are placed onto the form. This kind of works, although if I display another window over the form, or move the cursor into the title bar or the system status bar, all the buttons disappear. I would like to place the buttons dynamically, and tried to use SetWindowPos(*) for one of the buttons. But when I called SetWindowPos(*) for that button, everything (image and other buttons) disappeared. Is there a proper way to display buttons over an image so they don't disappear, and also to do so dynamically?
|
|
|
|
|
Maybe try on window focus to hide then reshow the buttons.
A small workaround!
|
|
|
|
|
I'm sorry, I don't understand. Do you mean call SetFocus() for the buttons?
|
|
|
|
|
There are four questions :
- where do you draw (what function of the view) ?
- where do you create the buttons ?
- how do you create the buttons ?
- what can you see at the places of the "hidden" buttons ?
virtual void BeHappy() = 0;
|
|
|
|
|
I call the functions to draw in the OnDraw(CDC* pDC) function of the CFormView
The buttons are put on the form with the resource editor, then I assigned names with class wizard.
The image is displayed correctly so it looks like the image is overwriting the buttons.
Interestingly, when the cursor is moved to the title bar, the OnDraw gets called, and the buttons disappear. I put in code to detect when the cursor is in the title bar and call Invalidate() in the form to cause OnDraw to be called again, then the buttons are displayed.
|
|
|
|
|
Please try to set WS_CLIPCHILDREN style to your form
(possible from the resource editor too)
virtual void BeHappy() = 0;
|
|
|
|
|
|
Oops, I was a little hasty. I also show static text below the button. I call OnCtlColor(*) and set the hbr (HBRUSH) returned to a hollow brush. The text is then displayed over the image. After setting WS_CLIPCHILDREN, the text background is no longer transparent but light gray.
|
|
|
|
|
Hmm... So the style can not be accepted
- How about EnumChildWindows(..)
(at the ending of your drawing procedure)
and RedrawWindow(..) for each child
in its (of EnumChildWindows(..) ) callback function ?
virtual void BeHappy() = 0;
|
|
|
|
|
I did something similar. After the drawing procedure, I have each button redraw itself, and this appears to be working. Thanks to all for your time and help! 
|
|
|
|
|
Hello, I have been working on an MFC project that looks like a registry editor which have a treeview on the left side and listview on the right side. Once the user sets focus on one item in the listview and clicks ctrl+c, how do we add a functionality to copy the listview item text into the clipboard? please help.
|
|
|
|
|
|
Hi,
How to put marquee progress bar in win32 under windows XP.
|
|
|
|
|
Create your progress bar with PBS_MARQUEE[^] style.
You can start and stop the animation, and control its speed using PBM_SETMARQUEE[^] message. 
|
|
|
|
|
|
I am getting compilation error:
C2065: 'PBS_MARQUEE' : undeclared identifier
I written the code the InitDialog()
HWND hwndProgress=GetDlgItem(m_hwnd,IDC_PROGRESS1);
SetWindowLongPtr(hwndProgress, GWL_STYLE, PBS_MARQUEE);
My application is win32. Please suggest??
|
|
|
|
|
Check your SDK version and the value asigned to the WINVER symbol.
May be the definition of that constant is disabled by a old WINVER number
2 bugs found.
> recompile ...
65534 bugs found.
|
|
|
|
|
as emilo told, you can see those values in CommCtrl.h as
#if (_WIN32_WINNT >= 0x0501)
#define PBS_MARQUEE 0x08
#endif // _WIN32_WINNT >= 0x0501
#if (_WIN32_WINNT >= 0x0501)
#define PBM_SETMARQUEE (WM_USER+10)
#endif // _WIN32_WINNT >= 0x0501
so check your source code (probably in targetver.h) for #define _WIN32_WINNT and check the value.
Also, you can try defining those values manually in your code as
#define PBS_MARQUEE 0x08
#define PBM_SETMARQUEE (WM_USER+10)

|
|
|
|
|
err... this should be said to the OP not to myself
2 bugs found.
> recompile ...
65534 bugs found.
|
|
|
|